相关疑难解决方法(0)

servlet如何工作?实例化,会话,共享变量和多线程

假设,我有一个拥有大量servlet的Web服务器.对于在这些servlet之间传递的信息,我正在设置会话和实例变量.

现在,如果有2个或更多用户向此服务器发送请求,那么会话变量会发生什么?它们对所有用户都是通用的,或者对于每个用户而言都是不同的.如果它们不同,那么服务器如何区分不同的用户?

还有一个类似的问题,如果有n用户访问特定的servlet,那么这个servlet只在第一个用户第一次访问它时实例化,或者是否为所有用户单独实例化?换句话说,实例变量会发生什么?

java multithreading servlets session-variables instance-variables

1105
推荐指数
6
解决办法
28万
查看次数

参数和属性之间的差异

可能重复:
getAttribute()和getParameter()之间的差异

我在j2ee中将参数和属性读作两个不同的主题.但我无法意识到差异.任何人都可以澄清吗?

java servlets

8
推荐指数
2
解决办法
3万
查看次数

可以使用外部代理工具篡改/修改请求范围变量吗?

我们已经知道可以使用外部代理工具修改URL和FORM范围变量.

例如,如果有人提出这样的请求 - http:\\website\index.cfm?a=1&b=2

这样,可以将值添加到.cfm页面的URL范围.

类似地,有任何方法可以添加/更改值以在ColdFusion中请求范围而不在代码中明确设置它.

我问这个是因为我们在CFM页面中有一个这样的代码.

<cfset request.uploadFileDir = application.fileDir & "\upload" />
<cffile action="upload" accept="application/pdf" destination="#REQUEST.uploadFileDir#" filefield="brochure" nameconflict="makeunique"/>
Run Code Online (Sandbox Code Playgroud)

安全团队表示上述代码容易受到攻击,因为REQUESTJAVA中的范围可能被外部代理工具篡改/更改.由于ColdFusion是基于JAVA构建的,因此ColdFusion REQUEST也可能被外部代理工具篡改.这是正确的假设吗?JAVA和ColdFusion REQUEST范围相同吗?

最后一个主要问题 - 是否有任何方式对示例中上面提到的页面进行外部请求,修改REQUEST范围或更精确的REQUEST.uploadFileDir变量?

java security coldfusion websecurity

5
推荐指数
2
解决办法
147
查看次数

尝试获取请求参数以访问tomcat中的日志

我试图调查特定HTTP请求发送到网站的频率.请求是一个POST,并且有一个名为的参数"_method".我可以在萤火虫网上看到这个.

我需要检查这个"_method"参数的值,所以按照文档http://tomcat.apache.org/tomcat-6.0-doc/config/valve.html#Access_Log_Valve我将以下内容添加到阀门的tomcat访问配置中

%{_method}r
Run Code Online (Sandbox Code Playgroud)

但它并没有出现在访问日志中.

我想知道是因为下划线?

注意,参数名称不能更改.

java tomcat tomcat6 tomcat-valve

3
推荐指数
1
解决办法
4202
查看次数

Java servlet:request.getParameter 和 request.setAttribute 以我不明白的方式连接

在 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");
Run Code Online (Sandbox Code Playgroud)

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

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

        request.getRequestDispatcher(page).forward(request, response);
Run Code Online (Sandbox Code Playgroud)

然后我再次通过 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"); …
Run Code Online (Sandbox Code Playgroud)

java jsp servlets

2
推荐指数
1
解决办法
5万
查看次数

1
推荐指数
1
解决办法
4580
查看次数

在 HttpServletRequest 中设置 Cookie

有没有办法将cookie添加到HttpServletRequest

请帮我..

我已经尝试过了。但它不起作用

   HttpServletRequest request = (HttpServletRequest) servletRequest;
    HttpServletResponse response = (HttpServletResponse) servletResponse;
    String cookie =   request.getHeader(HttpHeader.AUTHORIZATION.asString());
    HttpRequest httpRequest = new HttpRequest().setRequest(request);
    String authCookie = String.format("%s=%s", session_id, cookie );
    ServletRequest clientRequest = httpRequest.getRequest();
     httpRequest.setCookies(authCookie );
Run Code Online (Sandbox Code Playgroud)

java cookies servlets

1
推荐指数
1
解决办法
3万
查看次数