java里面request这个东西我不启动tomcat等容器的服务,只写一个main主函数,能得到这个request吗?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java里面request这个东西我不启动tomcat等容器的服务,只写一个main主函数,能得到这个request吗?相关的知识,希望对你有一定的参考价值。

就是说我纯建立一个类文件,不涉及任何web工程,能通过request来处理流,实现文件传输吗?

参考技术A 不可能得到request,
request是客户端发送请求给服务器端,在服务器端获得请求对象(即request),试问服务器都没有启动,如何来获取reqeust呢?
参考技术B request对象是web容器生成的,普通的java项目无法引用,想实现文件传输可以使用socket处理 参考技术C 不知道是不是你想要的,看看我的空间

Java servlet:request.getParameter 和 request.setAttribute 以我不理解的方式连接 [重复]

【中文标题】Java servlet:request.getParameter 和 request.setAttribute 以我不理解的方式连接 [重复]【英文标题】:Java servlet: request.getParameter and request.setAttribute connected in a way I don't understand [duplicate] 【发布时间】:2014-10-26 22:00:58 【问题描述】:

在我的 doPost 方法的顶部,我获取了一些我之前使用基本形式在 JSP 中设置的参数:

protected void doPost(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException 

        String serverName = request.getParameter("serverName");
        String destFileName = request.getParameter("destFileName");         
        String userName = request.getParameter("userName");
        String Message= request.getParameter("Message");

在 doPost 方法的最后,我使用 setAttribute 将它们添加回请求对象:

        request.setAttribute("userName ", userName );           
        request.setAttribute("destFileName", destFileName);
        request.setAttribute("serverName", serverName); 
        request.setAttribute("Message", Message);   

        request.getRequestDispatcher(page).forward(request, response);

然后我再次通过 request.getParameter 在我的 JSP 中获取它们:

<%  /** if the parameters are already in place, grab them **/
    String destFileName = request.getParameter("destFileName");
    String user = request.getParameter("user");
    String serverName = request.getParameter("serverName");
    String Message = request.getParameter("Message");           
%>

这有效,除非我通过 doPost 方法重写该值。如果是这种情况,那么我必须在 JSP 中使用 request.getAttribute 来检索它,因为 request.getParameter 将检索在 doPost 方法顶部定义的值,忽略顶部和底端。

有人对此有解释吗?我一切正常,但我想了解为什么我花了几个小时沮丧地找出问题所在。

【问题讨论】:

setParameter()setAttribute() 中的键相同。不是吗? 属性和参数是不同的东西,所以当你在你的jsp中使用getParameter时,你得到的是页面请求发送的原始参数。 不是同一个请求吗?如果是,那么您也可以在 servlet 和 jsp 中获取它。您是否在 servlet 中使用 forward()include() 来转发/包含 jsp? 请注意,如果您执行重定向,参数和属性都会丢失。 BTW 脚本 已弃用。看看 JSTL 和表达式语言,EL 中经常用到属性。 【参考方案1】:

getParametergetAttribute完全不相关。

getParameter

将请求参数的值作为字符串返回,如果是 参数不存在。请求参数是额外信息 随请求发送。对于 HTTP servlet,参数包含在 查询字符串或发布的表单数据。

getAttribute

将命名属性的值作为对象返回,否则返回 null 给定名称的属性存在。

换句话说,返回一个使用setAttribute() 设置的值。

【讨论】:

Rightyho;我明白为什么我感到困惑了;我怀疑我大部分时间都在完全不必要地使用 setAttribute。 @jrhooker 当您需要在处理相同请求的多个 servlet(或其他组件)之间传递对象时,请使用 setAttribute(和 getAttribute)。

以上是关于java里面request这个东西我不启动tomcat等容器的服务,只写一个main主函数,能得到这个request吗?的主要内容,如果未能解决你的问题,请参考以下文章

Servlet容器

视图层参数request详解

request.getSession().invalidate() 能否释放内存?

java中的request类怎么使用

Java servlet:request.getParameter 和 request.setAttribute 以我不理解的方式连接 [重复]

javaw.exe是啥东西? 我电脑开机时他是自动启动,那关掉它之后对电脑会产生啥影响吗?