servlet(3)

来源:互联网 发布:免费统计分析软件 编辑:程序博客网 时间:2024/05/29 18:30

•       ServletConfig

–      如何给Servlet类配置初始化参数

 –      如何在Servlet类中获取它的初始化参数值

•       ServletContext

–      如何配置Web应用上下文初始化参数

–      如何在Servlet类中获取Web应用上下文的初始化参数值

•       ServletContext的其他用途

–      public void setAttribute(String name, Object obj):根据指定名name把对象obj存放到应用上下文范围中。

–      public Object getAttribute(String name):根据指定名从应用上下文范围中获取到该属性对象。

–      public void removeAttribut(String name):根据指定名从应用上下文范围中移除该属性。

•       ServletConfig和ServletContext的区别

–      整个Web应用只有一个ServletContext,在部署Web应用的时候,容器会建立这一个ServletContext对象,这个上下文对Web应用中的每个Servlet和JSP都可用。

–      Web应用中的各个Servlet都有自己的ServletConfig,它只对当前Servlet有效。

•       使用synchronized

–      使用synchronized关键字同步操作成员变量和共享数据的代码,就可以防止可能出现的线程安全问题。

•       尽量少使用成员变量和共享数据

–      ServletContext是可以多线程同时读/写成员变量和共享数据的,线程是不安全的。

–      ServletRequest对象在service方法的范围内是有效的,不要试图在service方法结束后仍然保存请求对象的引用。

–      Servlet本身就是多线程的,在Servlet中再创建线程,将导致执行情况复杂化,出现多线程安全问题

•       public void doPost(HttpServletRequest request, HttpServletResponse response)

•               throws ServletException, IOException {

•            //验证用户输入的账号和密码是否是合法的。用户的输入账号和密码怎么获取?验证--admin  1234  把验证的结果发送回客户端

•            //用户的输入账号和密码怎么获取:通过request对象来获取

•            request.setCharacterEncoding("utf-8");

•            String username=request.getParameter("userName");

•            String password=request.getParameter("password");

•            String str=username+":"+password;

•            //验证--admin  1234

•            //String result=null;

•            if("admin".equals(username)&& "1234".equals(password)){

•              

•              

•               //result="合法的用户";

•               ServletContext context=this.getServletContext();

•               context.setAttribute("username",username);

•               response.sendRedirect("secuss");//请求的重定向---

•            }else{

•               //result="非法用户";

•               //请求的转发--两个Servlet共享一个Request对象

•               request.setAttribute("user_name_password",str);

•               request.setAttribute("var1", "var1");

•               request.setAttribute("var2", "var3");

•              

•               response.setContentType("text/html;charset=utf-8");

•               PrintWriter out = response.getWriter();

•               out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");

•               out.println("<HTML>");

•               out.println("  <HEAD><TITLE>A Servlet</TITLE></HEAD>");

•               out.println("  <BODY>");

•              

•              

•               RequestDispatcher rd=request.getRequestDispatcher("fail");

•               rd.forward(request, response);

•           

•               //rd.include(request,response);

•              

•               out.print("用户名为:"+username);

•               out.println("  </BODY>");

•               out.println("</HTML>");

•               out.flush();

•               out.close();

•            }

•           

原创粉丝点击