类从Servlet请求数据

时间:2012-07-19 12:52:09

标签: java servlets

我有一个运行的Servlet并从网页接收数据。稍后在一组不同的任务中,我想从标准Ja​​va类访问这些数据并使用这些数据,我将如何解决这个问题?我可以将数据保存在任何地方以便访问吗?

我有这样的代码:

String name = request.getParameter("username");

然后我尝试将其设置为属性并传递它:

getServletContext().setAttribute("com.mycompany.app-param", "name");

然后在下一个类中,我尝试访问上下文以获取变量,但无论我尝试了什么,我得到服务器错误500,或null或Server = null。我不认为它能够正确地掌握上下文:

value = getServletContext().getAttribute("com.mycompany.app-param");

有谁知道如何访问先前创建的上下文并获取其变量?

6 个答案:

答案 0 :(得分:1)

是的,就像在数据库表中一样?甚至是文件?

示例代码:

https://www.ibm.com/developerworks/mydeveloperworks/blogs/wasdev/entry/servlet_jdbc_sample1?lang=en

答案 1 :(得分:1)

您可以将DTO与一组getter(获取数据到java类)和setter(从Web页面设置数据)一起使用,并将其维护为全局范围,以便以后可以使用Java类访问它。希望这有帮助!!!

答案 2 :(得分:1)

你可以用一个dao编写一个数据访问层,它将数据保存在数据库中。如果您的要求是仅在会话范围内使用数据,那么您可以将该数据保存在会话中。

答案 3 :(得分:1)

您可以将该数据保存在某个文件中

或者

您可以在UI中提供具有所有属性的类,并为该类创建一个对象,并在此之后序列化该对象,此时您希望该数据可以对该对象进行反序列化。

序列化链接 http://www.tutorialspoint.com/java/java_serialization.htm

答案 4 :(得分:1)

你去......

public class DummyDTO {
    private String name = null;
    private String age = null;

    // getters and setters
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAge() {
        return age;
    }

    public void setAge(String age) {
        this.age = age;
    }
} 

public class MyServletClass extends HttpServlet {
    public void doGet(HttpServletRequest request,
            HttpServletResponse response) throws ServletException,
            IOException {
        DummyDTO dummyDTO = new DummyDTO();
        dummyDTO.setName(request.getParameter("name"));
        dummyDTO.setAge(request.getParameter("age"));
        AnotherClass.setValues(dummyDTO);
    }




    public class AnotherClass {

        String name = "";
        String age = "";

        public static void setValues(DummyDTO dummyDTO) {

            name = dummyDTO.getName();
            age = dummyDTO.getAge();
        }

    }   

答案 5 :(得分:1)

请参阅Is getServletContext() officially supported in GAE? - 关于gae,它不能保证以您希望的方式工作(例如传递信息)。

您应该使用会话或请求范围属性,请参阅here herehere以帮助您入门。您使用哪一个取决于所保存属性的所需生命周期和可见性(请求<会话<应用程序)