HttpServletRequest无法解析

时间:2009-11-04 14:47:33

标签: java servlets

我已导入以下内容 import javax.servlet.http。*;

我想获得首选语言浏览器

HttpServletRequest request = ServletActionContext.getRequest();
Locale userPreferredLocale = request.getLocale();

我收到错误HttpServletRequest无法解析。

如果可能的话,有人可以帮助我并给我一步一步的指导。我不是一个java开发人员,而是一个.net,只是修复了一个bug。

非常感谢

7 个答案:

答案 0 :(得分:9)

javax.servlet.http包是servlet API的一部分。相关的jar可以在Java EE容器(例如Sun的Glassfish)或独立的servlet容器(例如Apache的Tomcat)中找到。基本上,这些是Java Web服务器。

为了编译依赖于它的代码,您必须将servlet库添加到依赖项中。具体如何完成取决于您使用的工具。

您是否正在构建Web应用程序? (预期输出是.war还是.ear文件?)源是否捆绑了build.xml(可能是Ant版本),任何pom.xml个文件(可能是{{3} })或任何.project/.classpath文件(可能是Maven项目)?


  

情景就是这样。 Asp.net 1.1在调用webservice的页面上有一个javaapplet。 Javaapplet应该在.net中检测用户首选语言你做HttpContext.Current.Request.UserLanguages [0]所以我问,显然在java中等价的是request.getLocale();

好的,不理我上面所说的。要在Applet中获取Eclipse,我想您只需使用:

Locale userLocale = Locale.getDefault();

在Java Web服务器上,您将使用request.getLocale()从HTTP请求中获取用户的区域设置。小程序在客户端上运行。

答案 1 :(得分:1)

看起来你正在使用Struts2。有两种方法可以访问HttpServletRequest对象

  1. 更改Struts操作以实现ServletRequestAware接口 - 这是首选方法
  2. 您在上面显示的方法
  3. 鉴于(1)是首选方法,我建议您尝试这样做,更多细节here

    <强>更新 根据您添加的评论,您似乎并未实际使用Struts。您在服务器端使用.Net,在客户端使用Java Applet。如果是这种情况,尝试使用Servlet或Struts2 API是没有意义的,因为它们只是服务器端

    鉴于你已经知道如何在.Net服务器端获得用户的首选语言,我不明白为什么你不这样做呢?

答案 2 :(得分:1)

您可以执行以下操作:在您的类中导入jar文件:

import javax.servlet.http.HttpServletResponse

添加Apache Tomcat库如下:

项目&gt;属性&gt; Java构建路径&gt;图书馆&gt;从库选项卡添加库&gt;选择服务器运行时&gt;下一个&gt;选择Apache Tomcat v 6.0&gt;完成&gt;确定

同样首先,确保Servlet jar包含在eclipse中的类路径中,PermGenError表示。

答案 3 :(得分:0)

编译源代码时,需要将包含servlet类的jar添加到类路径中。一种方法是使用-cp标志:

javac -classpath lib/servlet.jar MyClass.java

答案 4 :(得分:0)

要在Applet中获取Locale,请使用继承的getLocale()方法。

示例:

public class MyApplet extends Applet {
    public void doStuff() {
        Locale locale = getLocale();
        // Now you can work with that.
    }
}

答案 5 :(得分:0)

javax.servlet.http和所有类相关的servlet上下文和servlet编程只与您的Servlet容器相关。因此,请停止对其他任何事情的担心,并检查Tomcat库是否包含在您的WEB-APP类路径中。

如果没有添加它们,一切都会好的。

右键单击您的项目&gt;属性&gt;添加库&gt;服务器运行时

并选择与您的应用程序关联的服务器。

你完成了,这将包括你的项目的Servlet容器库和HttpServletRequest&amp; HttpServletResponse类将被解析。

希望它有所帮助,可以找到有关Servlet架构和上下文的更多信息Here.

答案 6 :(得分:0)

我收到此消息“导入javax.servlet.http.HttpSession无法解析” 将我的Web应用程序部署到Glassfish 4.0 Server时(在Eclipse IDE上)。 然后我尝试了这些步骤:

  • 右键单击项目&gt;属性&gt;项目方面&gt; Glassfish Web Extention&gt;运行时间&gt;清单GlassFish实例(例如:Localhost的GlassFish 4.0)
  • 点击“应用”

工作正常..