【环境】
eclipse j2ee;
Tomcat 7.0;

【模型1】

  1. package com.zhiqi;
  2.  
  3. import ...;
  4.  
  5. public class TestServlet extends HttpServlet {
  6. private static final long serialVersionUID = 1L;
  7. public void doGet(HttpServletRequest
  8.  
  9. req,HttpServletResponse resp) throws
  10.  
  11. ServletException,IOException{
  12. resp.setContentType
  13.  
  14. ("text/html;charset=utf-8");
  15. PrintWriter out=resp.getWriter();
  16. out.println("<html>");
  17. out.println("<head><title>test
  18.  
  19. Servlet</title></head>");
  20. out.println("<body>");
  21. out.println("欢迎使用Servlet编程");
  22. out.println("</body>");
  23. out.println("</html>");
  24. out.flush();
  25. out.close();
  26. }
  27. }

  

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app>
  3. <servlet>
  4. <servlet-name>TestServlet</servlet-name>
  5. <servlet-
  6.  
  7. class>com.zhiqi.TestServlet</servlet-class>
  8. </servlet>
  9.  
  10. <servlet-mapping>
  11. <servlet-name>TestServlet</servlet-name>
  12. <url-pattern>/fun</url-pattern>
  13. </servlet-mapping>
  14. </web-app>

  【模型2】getInitParameter("repeat")

  1. package com.zhiqi;
  2.  
  3. import ...;
  4.  
  5. public class SecondServlet extends HttpServlet {
  6. private static final long serialVersionUID = 1L;
  7.  
  8. public void doGet(HttpServletRequest
  9.  
  10. req,HttpServletResponse resp) throws
  11.  
  12. ServletException,IOException{
  13. int repeat=Integer.parseInt
  14.  
  15. (getInitParameter("repeat"));
  16. resp.setContentType
  17.  
  18. ("text/html;charset=utf-8");
  19. PrintWriter out=resp.getWriter();
  20. out.println("<html>");
  21. out.println("<head><title>test2
  22.  
  23. Servlet</title></head>");
  24. out.println("<body>");
  25.  
  26. for(int i=0;i<repeat;i++){
  27. out.println("<table border=
  28.  
  29. \"1\"><tr>");
  30. out.println("<td>"+(i
  31.  
  32. +1)+"</td><td>");
  33. out.println("欢迎使用Servlet");
  34. out.println
  35.  
  36. ("</td></tr></table>");
  37. out.println("<br>");
  38. }
  39. out.println("</body>");
  40. out.println("</html>");
  41. out.flush();
  42. out.close();
  43. }
  44. }

  

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app>
  3. <servlet>
  4. <servlet-name>SecondServlet</servlet-
  5.  
  6. name>
  7. <servlet-
  8.  
  9. class>com.zhiqi.SecondServlet</servlet-class>
  10.  
  11. <init-param>
  12. <param-name>repeat</param-name>
  13. <param-value>5</param-value>
  14. </init-param>
  15. </servlet>
  16.  
  17. <servlet-mapping>
  18. <servlet-name>SecondServlet</servlet-
  19.  
  20. name>
  21. <url-pattern>/second</url-pattern>
  22. </servlet-mapping>
  23. </web-app>

  

  【模型3】获取服务器的运行参数

  

  1. package com.zhiqi;
  2.  
  3. import java.io.IOException;
  4. import java.io.PrintWriter;
  5.  
  6. import javax.servlet.ServletException;
  7. import javax.servlet.http.HttpServlet;
  8. import javax.servlet.http.HttpServletRequest;
  9. import javax.servlet.http.HttpServletResponse;
  10.  
  11. public class ThirdServlet extends HttpServlet {
  12. private static final long serialVersionUID = 1L;
  13.  
  14. public void doGet(HttpServletRequest req,HttpServletResponse resp) throws ServletException,IOException{
  15. doPost(req,resp);
  16. }
  17.  
  18. public void doPost(HttpServletRequest req,HttpServletResponse resp) throws ServletException,IOException{
  19. resp.setContentType("text/html;charset=utf-8");
  20. PrintWriter out=resp.getWriter();
  21. out.println("<html>");
  22. out.println("<head><title>test3 Servlet</title></head>");
  23. out.println("<body>");
  24. fun(req,out);
  25. out.println("</body>");
  26. out.println("</html>");
  27. out.flush();
  28. out.close();
  29. }
  30. public void fun(HttpServletRequest req,PrintWriter out) throws IOException{
  31. out.println("<ul>");
  32. out.println("<li>服务器IP->"+req.getRemoteAddr()+"</li>");
  33. out.println("<li>服务器名->"+req.getServerName()+"</li>");
  34. out.println("<li>服务器端口->"+req.getServerPort()+"</li>");
  35. out.println("<li>协议名->"+req.getScheme()+"</li>");
  36. out.println("<li>协议版本->"+req.getProtocol()+"</li>");
  37. out.println("<li>请求的方法->"+req.getMethod()+"</li>");
  38. out.println("<li>请求的URL->"+req.getRequestURL()+"</li>");
  39. out.println("<li>上下文路径->"+req.getContextPath()+"</li>");
  40. out.println("<li>Servlet路径->"+req.getServletPath()+"</li>");
  41.  
  42. out.println("</ul>");
  43. }
  44. }

  

  1. <?xml version="1.0" encoding="UTF-8"?>
  2.  
  3. <web-app>
  4. <servlet>
  5. <servlet-name>ThirdServlet</servlet-name>
  6. <servlet-class>com.zhiqi.ThirdServlet</servlet-class>
  7.  
  8. </servlet>
  9.  
  10. <servlet-mapping>
  11. <servlet-name>ThirdServlet</servlet-name>
  12. <url-pattern>/third</url-pattern>
  13. </servlet-mapping>
  14. </web-app>

  

【模型4】获得头信息

  1. package com.zhiqi;
  2.  
  3. import ...
  4.  
  5. public class FourthServlet extends HttpServlet {
  6. private static final long serialVersionUID = 1L;
  7.  
  8. public void doGet(HttpServletRequest req,HttpServletResponse resp) throws ServletException,IOException{
  9. fun(req,resp);
  10. }
  11. public void doPost(HttpServletRequest req,HttpServletResponse resp) throws ServletException,IOException{
  12. fun(req,resp);
  13. }
  14. public void fun(HttpServletRequest req,HttpServletResponse resp)throws ServletException,IOException{
  15. String headers=null;
  16. Enumeration e=req.getHeaderNames();
  17. resp.setContentType("text/html;charset=utf-8");
  18. PrintWriter out=resp.getWriter();
  19. out.println("<html>");
  20. out.println("<head><title>test4 Servlet</title></head>");
  21. out.println("<body>");
  22. out.println("<ul>");
  23.  
  24. while(e.hasMoreElements()){
  25. headers=(String) e.nextElement();
  26. if(headers!=null){
  27. out.println("<li>"+headers+" -> "+req.getHeader(headers)+"</li>");
  28. //out.println("->");
  29. //out.println("<li>"+req.getHeader(headers)+"</li>");
  30. }
  31. }
  32. //out.println("<li>"+"</li>");
  33. out.println("</ul>");
  34. out.println("</body>");
  35. out.println("</html>");
  36. out.flush();
  37. out.close();
  38. }
  39. }

  

  1. <?xml version="1.0" encoding="UTF-8"?>
  2.  
  3. <web-app>
  4. <servlet>
  5. <servlet-name>FourthServlet</servlet-name>
  6. <servlet-class>com.zhiqi.FourthServlet</servlet-class>
  7.  
  8. </servlet>
  9.  
  10. <servlet-mapping>
  11. <servlet-name>FourthServlet</servlet-name>
  12. <url-pattern>/fourth</url-pattern>
  13. </servlet-mapping>
  14. </web-app>

 

 【模型5】Servlet处理表单

  1. package com.zhiqi;
  2.  
  3. import java.io.IOException;
  4. import java.io.PrintWriter;
  5.  
  6. import javax.servlet.ServletException;
  7. import javax.servlet.http.HttpServlet;
  8. import javax.servlet.http.HttpServletRequest;
  9. import javax.servlet.http.HttpServletResponse;
  10.  
  11. public class LoginServlet extends HttpServlet {
  12. private static final long serialVersionUID = 1L;
  13.  
  14. public void doGet(HttpServletRequest req,HttpServletResponse resp) throws ServletException,IOException{
  15. resp.setContentType("text/html;charset=utf-8");
  16. PrintWriter out=resp.getWriter();
  17. out.println("<html>");
  18. out.println("<head><title>login</title></head>");
  19. out.println("<body>");
  20. out.println("<h2>请输入登录信息</h2>");
  21. out.println("<form method='post' action='"+req.getContextPath()//上下文路径
  22. +"/f'"
  23. +"'>");
  24. out.println("<div>用户名:</div>");
  25. out.println("<div><input type='text' name='userName' id='userName' /></div>");
  26.  
  27. out.println("<div>密码:</div>");
  28. out.println("<div><input type='password' name='password' id='password' /></div>");
  29.  
  30. out.println("<div><input type='submit' value='提交' /></div></form>");
  31.  
  32. out.println("</body>");
  33. out.println("</html>");
  34. out.flush();
  35. out.close();
  36. }
  37. public void doPost(HttpServletRequest req,HttpServletResponse resp) throws ServletException,IOException{
  38. resp.setContentType("text/html;charset=utf-8");
  39. PrintWriter out=resp.getWriter();
  40. req.setCharacterEncoding("utf-8");//解决提交的表单数据中文乱码
  41. out.println("<html>");
  42. out.println("<head><title>login info</title></head>");
  43. out.println("<body>");
  44. String userName=req.getParameter("userName");
  45. String password=req.getParameter("password");
  46. if(userName==null || userName.length()==0 || password==null || password.length()==0){
  47. out.println("<h2>输入用户名和密码</h2>");
  48. out.println("<br><a href='"
  49. +req.getContextPath()+"/f'"
  50. +">登录</a>");
  51. }else{
  52. out.println("<h2>用户信息</h2>");
  53. out.println(userName);
  54. out.println(password);
  55. }
  56. out.println("</body>");
  57. out.println("</html>");
  58. out.flush();
  59. out.close();
  60.  
  61. }
  62. }

  

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app>
  3.  
  4. <servlet>
  5. <servlet-name>LoginServlet</servlet-name>
  6. <servlet-class>com.zhiqi.LoginServlet</servlet-class>
  7. </servlet>
  8. <servlet-mapping>
  9. <servlet-name>LoginServlet</servlet-name>
  10. <url-pattern>/f</url-pattern>
  11. </servlet-mapping>
  12.  
  13. </web-app>

  

  

通过Servlet处理表单是非常麻烦的,1、需要调用out对象输出。2、双引号的转义

所以需要对此进行改造

模型【6】处理HTML页面的表单

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>login page</title>
  6. </head>
  7. <body>
  8. <h3>请输入用户名和密码</h3>
  9. <div>
  10. <form method="post" action="/LoginServlet2/f"><!-- 上下文路径+url-pattern -->
  11. 用户名:<input type="text" name="userName" ><br><br>
  12. 密码:<input type="password" name="password" ><br><br>
  13. <input type="submit" value="登录">
  14. </form>
  15. </div>
  16.  
  17. </body>
  18. </html>

  

  1. package com.zhiqi;
  2.  
  3. import java.io.IOException;
  4. import java.io.PrintWriter;
  5.  
  6. import javax.servlet.ServletException;
  7. import javax.servlet.http.HttpServlet;
  8. import javax.servlet.http.HttpServletRequest;
  9. import javax.servlet.http.HttpServletResponse;
  10.  
  11. public class LoginServlet2 extends HttpServlet {
  12. private static final long serialVersionUID = 1L;
  13.  
  14. public void doGet(HttpServletRequest req,HttpServletResponse resp) throws ServletException,IOException{
  15. resp.setContentType("text/html;charset=utf-8");
  16. PrintWriter out=resp.getWriter();
  17. out.println("<html>");
  18. out.println("<head><title>login</title></head>");
  19. out.println("<body>");
  20. out.println("<h2>请输入登录信息</h2>");
  21. out.println("<form method='post' action='"+req.getContextPath()//上下文路径
  22. +"/f'"
  23. +"'>");
  24. out.println("<div>用户名:</div>");
  25. out.println("<div><input type='text' name='userName' id='userName' /></div>");
  26.  
  27. out.println("<div>密码:</div>");
  28. out.println("<div><input type='password' name='password' id='password' /></div>");
  29.  
  30. out.println("<div><input type='submit' value='提交' /></div></form>");
  31.  
  32. out.println("</body>");
  33. out.println("</html>");
  34. out.flush();
  35. out.close();
  36. }
  37. public void doPost(HttpServletRequest req,HttpServletResponse resp) throws ServletException,IOException{
  38. resp.setContentType("text/html;charset=utf-8");
  39. PrintWriter out=resp.getWriter();
  40. req.setCharacterEncoding("utf-8");//解决提交的表单数据中文乱码
  41. out.println("<html>");
  42. out.println("<head><title>login info</title></head>");
  43. out.println("<body>");
  44. String userName=req.getParameter("userName");
  45. String password=req.getParameter("password");
  46. if(userName==null || userName.length()==0 || password==null || password.length()==0){
  47. out.println("<h2>输入用户名和密码</h2>");
  48. out.println("<br><a href='"
  49. +req.getContextPath()+"/f'"
  50. +">登录</a>");
  51. }else{
  52. out.println("<h2>用户信息</h2>");
  53. out.println(userName);
  54. out.println(password);
  55. }
  56. out.println("</body>");
  57. out.println("</html>");
  58. out.flush();
  59. out.close();
  60.  
  61. }
  62. }

  

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app>
  3.  
  4. <servlet>
  5. <servlet-name>LoginServlet2</servlet-name>
  6. <servlet-class>com.zhiqi.LoginServlet2</servlet-class>
  7. </servlet>
  8. <servlet-mapping>
  9. <servlet-name>LoginServlet2</servlet-name>
  10. <url-pattern>/f</url-pattern>
  11. </servlet-mapping>
  12.  
  13. </web-app>

  

【模型7】实例-网络调查表

  

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>网络调查表</title>
  6. </head>
  7. <body>
  8. <h2>潜在用户调查</h2>
  9. <div>
  10. <form method="post" action="/Example1/f">
  11. <div>
  12. <div style="float:left;margin-left:50px;">姓名:</div>
  13. <div style="float:left;margin-left:20px;"><input type="text" name="name"></div>
  14. </div>
  15. <div style="clear:both;">
  16. <div style="float:left;margin-left:50px;margin-top:5px;">Email:</div>
  17. <div style="float:left;margin-left:20px;margin-top:5px;"><input type="text" name="email"></div>
  18. </div>
  19. <div style="clear:both;">
  20. <div style="float:left;margin-left:50px;margin-top:5px;">年龄:</div>
  21. <div style="float:left;margin-left:20px;margin-top:5px;">
  22. <input type="radio" name="age" value="小于18">小于18
  23. <input type="radio" name="age" value="18-25">18-25
  24. <input type="radio" name="age" value="26-40">26-40
  25. <input type="radio" name="age" value="大于40">大于40
  26. </div>
  27. </div>
  28. <div style="clear:both;">
  29. <div style="float:left;margin-left:50px;margin-top:5px;">编程时间:</div>
  30. <div style="float:left;margin-left:50px;margin-top:5px;">
  31. <select name="seltime">
  32. <option value="1-2年">1-2年</option>
  33. <option value="2-5年">2-5年</option>
  34. <option value="5-10年">5-10年</option>
  35. </select>
  36. </div>
  37. </div>
  38. <div style="clear:both;">
  39. <div style="float:left;margin-left:50px;margin-top:5px;">使用操作系统:</div>
  40. <div style="float:left;margin-left:20px;margin-top:5px;">
  41. <select name="selos">
  42. <option value="Win XP">Win XP</option>
  43. <option value="Linux">Linux</option>
  44. <option value="Mac OS">Mac OS</option>
  45. </select>
  46. </div>
  47. </div>
  48. <div style="clear:both;">
  49. <div style="float:left;margin-left:50px;margin-top:5px;">使用编程语言:</div>
  50. <div style="float:left;margin-left:20px;margin-top:5px;">
  51. <input type="checkbox" name="lan" value="C">C
  52. <input type="checkbox" name="lan" value="C++">C++
  53. <input type="checkbox" name="lan" value="JAVA">JAVA
  54. <input type="checkbox" name="lan" value="C#">C#
  55. <input type="checkbox" name="lan" value="Python">Python
  56. </div>
  57. </div>
  58. <div style="clear:both;">
  59. <div style="float:left;margin-left:50px;margin-top:5px;">建议:</div>
  60. <div style="float:left;margin-left:20px;margin-top:5px;">
  61. <textarea name="ta"></textarea>
  62. </div>
  63. </div>
  64. <div style="clear:both;">
  65. <div style="float:left;margin-left:50px;margin-top:5px;"></div>
  66. <div style="float:left;margin-left:20px;margin-top:5px;">
  67. <input type="reset" name="" value="重置">
  68. <input type="submit" name="" value="提交">
  69. </div>
  70. </div>
  71.  
  72. </form>
  73. </div>
  74. </body>
  75. </html>

  

  1. package com.zhiqi;
  2.  
  3. import java.io.IOException;
  4. import java.io.PrintWriter;
  5.  
  6. import javax.servlet.http.HttpServlet;
  7. import javax.servlet.http.HttpServletRequest;
  8. import javax.servlet.http.HttpServletResponse;
  9.  
  10. public class Example1 extends HttpServlet {
  11. private static final long serialVersionUID = 1L;
  12.  
  13. public void doGet(HttpServletRequest req,HttpServletResponse resp) throws IOException{
  14. doPost(req,resp);
  15. }
  16. public void doPost(HttpServletRequest req,HttpServletResponse resp) throws IOException{
  17. resp.setContentType("text/html;charset=utf-8");
  18. PrintWriter out=resp.getWriter();
  19. req.setCharacterEncoding("utf-8");
  20. out.println("<html>");
  21. out.println("<head><title>网络调查</title></head>");
  22. out.println("<body>");
  23.  
  24. out.println("<h3>用户出入了以下信息</h3>");
  25.  
  26. String name=req.getParameter("name");
  27. out.println("<p>用户姓名:"+name+"</p>");
  28. String email=req.getParameter("email");
  29. out.println("<p>用户邮箱:"+email+"</p>");
  30. String age=req.getParameter("age");
  31. out.println("<p>用户年龄:"+age+"</p>");
  32. String seltime=req.getParameter("seltime");
  33. out.println("<p>编程时间:"+seltime+"</p>");
  34. String selos=req.getParameter("selos");
  35. out.println("<p>使用平台:"+selos+"</p>");
  36.  
  37. String [] lan=req.getParameterValues("lan");//获取数组
  38. out.println("<p>使用编程语言</p><ul>");
  39. for(int i=0;i<lan.length;i++){
  40. out.println("<li>"+lan[i]+"</li>");
  41. }
  42. out.println("</ul>");
  43.  
  44. String ta=req.getParameter("ta");
  45. out.println("<p>建议:"+ta+"</p>");
  46. out.println("</body>");
  47. out.println("</html>");
  48. }
  49. }

  

  1. <?xml version="1.0" encoding="UTF-8"?>
  2.  
  3. <web-app>
  4.  
  5. <servlet>
  6. <servlet-name>Example1</servlet-name>
  7. <servlet-class>com.zhiqi.Example1</servlet-class>
  8. </servlet>
  9. <servlet-mapping>
  10. <servlet-name>Example1</servlet-name>
  11. <url-pattern>/f</url-pattern>
  12. </servlet-mapping>
  13.  
  14. </web-app>

  运行

【模型8】枚举类型获取参数以及参数值

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>满意度调查</title>
  6. </head>
  7. <body>
  8. <h3>枚举类型获取参数以及参数值</h3>
  9. <h3>你对本网站提供的内容满意吗?</h3>
  10.  
  11. <form method="post" action="/Example2/f">
  12. <input type="hidden" name="reach_reco" value="满意度调查">
  13. <input type="submit" name="subm_cho" value="满意">
  14. <input type="submit" name="subm_cho" value="不满意">
  15. </form>
  16.  
  17. </body>
  18. </html>

  

  1. package com.zhiqi;
  2.  
  3. import java.io.IOException;
  4. import java.io.PrintWriter;
  5. import java.util.Enumeration;
  6.  
  7. import javax.servlet.http.HttpServlet;
  8. import javax.servlet.http.HttpServletRequest;
  9. import javax.servlet.http.HttpServletResponse;
  10.  
  11. public class Example2 extends HttpServlet {
  12.  
  13. private static final long serialVersionUID = 1L;
  14.  
  15. public void doGet(HttpServletRequest req,HttpServletResponse resp) throws IOException{
  16. doPost(req,resp);
  17. }
  18. public void doPost(HttpServletRequest req,HttpServletResponse resp) throws IOException{
  19. resp.setContentType("text/html;charset=utf-8");
  20. PrintWriter out=resp.getWriter();
  21. req.setCharacterEncoding("utf-8");
  22. out.println("<html>");
  23. out.println("<head><title>网络调查</title></head>");
  24. out.println("<body>");
  25. out.println("<h3>信息如下</h3>");
  26.  
  27. //获取枚举类型,可在不知道参数名的情况下输出
  28. Enumeration e=req.getParameterNames();
  29. while(e.hasMoreElements()){
  30. String str=(String) e.nextElement();
  31. out.println("<p>"+str+"</p>");
  32.  
  33. String [] s=req.getParameterValues(str);
  34. for(int i=0;i<s.length;i++){
  35. out.println("<p>"+s[i]+"</p>");
  36. }
  37. }
  38.  
  39. out.println("</body>");
  40. out.println("</html>");
  41. }
  42. }

  

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app>
  3.  
  4. <servlet>
  5. <servlet-name>Example2</servlet-name>
  6. <servlet-class>com.zhiqi.Example2</servlet-class>
  7. </servlet>
  8. <servlet-mapping>
  9. <servlet-name>Example2</servlet-name>
  10. <url-pattern>/f</url-pattern>
  11. </servlet-mapping>
  12.  
  13. </web-app>

  

  

【模型9】Cookie的使用

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Test Cookie</title>
  6. </head>
  7. <body>
  8.  
  9. <h3>Test Cookie</h3>
  10. <form method="post" action="/Example8/set">
  11. 用户名:<input type="text" name="userName" id="userName" />
  12. <br><br>
  13. <input type="submit" value="登录" />
  14. <input type="reset" value="重置" />
  15. </form>
  16. </body>
  17. </html>

  

  1. package com.zhiqi;
  2.  
  3. import java.io.IOException;
  4. import java.io.PrintWriter;
  5.  
  6. import javax.servlet.http.Cookie;
  7. import javax.servlet.http.HttpServlet;
  8. import javax.servlet.http.HttpServletRequest;
  9. import javax.servlet.http.HttpServletResponse;
  10.  
  11. public class Test_setCookie extends HttpServlet {
  12. private static final long serialVersionUID = 1L;
  13.  
  14. public void doGet(HttpServletRequest req,HttpServletResponse resp) throws IOException{
  15. doPost(req,resp);
  16. }
  17. public void doPost(HttpServletRequest req,HttpServletResponse resp) throws IOException{
  18. resp.setContentType("text/html;charset=utf-8");
  19. PrintWriter out=resp.getWriter();
  20. req.setCharacterEncoding("utf-8");
  21. out.println("<html>");
  22. out.println("<head><title>Test Cookie</title></head>");
  23. out.println("<body>");
  24.  
  25. out.println("<h3>测试set</h3>");
  26.  
  27. String userName=req.getParameter("userName");
  28. Cookie coo1=new Cookie("userName",userName);
  29. coo1.setMaxAge(24*60*60*30);
  30. resp.addCookie(coo1);
  31.  
  32. out.println("<a href='"
  33. +req.getContextPath()
  34. +"/get'>"
  35. +"查看Cookie</a>");
  36.  
  37. out.println("<p>上下文路径->"+req.getContextPath()+"</p>");
  38.  
  39. out.println("</body>");
  40. out.println("</html>");
  41. }
  42.  
  43. }

  

  1. package com.zhiqi;
  2.  
  3. import java.io.IOException;
  4. import java.io.PrintWriter;
  5.  
  6. import javax.servlet.http.Cookie;
  7. import javax.servlet.http.HttpServlet;
  8. import javax.servlet.http.HttpServletRequest;
  9. import javax.servlet.http.HttpServletResponse;
  10.  
  11. public class Test_getCookie extends HttpServlet {
  12. private static final long serialVersionUID = 1L;
  13.  
  14. public void doGet(HttpServletRequest req,HttpServletResponse resp) throws IOException{
  15. doPost(req,resp);
  16. }
  17. public void doPost(HttpServletRequest req,HttpServletResponse resp) throws IOException{
  18. resp.setContentType("text/html;charset=utf-8");
  19. PrintWriter out=resp.getWriter();
  20. req.setCharacterEncoding("utf-8");
  21. out.println("<html>");
  22. out.println("<head><title>Test Cookie</title></head>");
  23. out.println("<body>");
  24.  
  25. out.println("<h3>测试get</h3>");
  26.  
  27. Cookie[] cos=req.getCookies();
  28. Cookie c=null;
  29. for(int i=0;i<cos.length;i++){
  30. c=cos[i];
  31. if(c.getName().equals("userName")){
  32. out.println("用户名"+c.getValue());
  33. }
  34. }
  35.  
  36. out.println("</body>");
  37. out.println("</html>");
  38. }
  39.  
  40. }

  

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app>
  3. <servlet>
  4. <servlet-name>Test_setCookie</servlet-name>
  5. <servlet-class>com.zhiqi.Test_setCookie</servlet-class>
  6. </servlet>
  7.  
  8. <servlet-mapping>
  9. <servlet-name>Test_setCookie</servlet-name>
  10. <url-pattern>/set</url-pattern>
  11. </servlet-mapping>
  12.  
  13. <servlet>
  14. <servlet-name>Test_getCookie</servlet-name>
  15. <servlet-class>com.zhiqi.Test_getCookie</servlet-class>
  16. </servlet>
  17.  
  18. <servlet-mapping>
  19. <servlet-name>Test_getCookie</servlet-name>
  20. <url-pattern>/get</url-pattern>
  21. </servlet-mapping>
  22.  
  23. </web-app>

  

【模型10】Session会话

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Insert title here</title>
  6. </head>
  7. <body>
  8.  
  9. <form method="post" action="/Example9/f">
  10. <input type="submit" value="点击" />
  11. </form>
  12.  
  13. </body>
  14. </html>

  

  1. package com.zhiqi;
  2.  
  3. import java.io.IOException;
  4. import java.io.PrintWriter;
  5. import java.util.Date;
  6. import java.util.Enumeration;
  7.  
  8. import javax.servlet.http.HttpServlet;
  9. import javax.servlet.http.HttpServletRequest;
  10. import javax.servlet.http.HttpServletResponse;
  11. import javax.servlet.http.HttpSession;
  12.  
  13. public class TestSession extends HttpServlet {
  14. private static final long serialVersionUID = 1L;
  15.  
  16. public void doGet(HttpServletRequest req,HttpServletResponse resp) throws IOException{
  17. doPost(req,resp);
  18. }
  19. public void doPost(HttpServletRequest req,HttpServletResponse resp) throws IOException{
  20. resp.setContentType("text/html;charset=utf-8");
  21. PrintWriter out=resp.getWriter();
  22. out.println("<html>");
  23. out.println("<head><title>Test Session</title></head>");
  24. out.println("<body>");
  25.  
  26. HttpSession session=req.getSession();//创建Session
  27. Integer count=(Integer)session.getAttribute("count");
  28. if(count==null){
  29. count=new Integer(1);
  30. }else{
  31. count=new Integer(count.intValue()+1);
  32. }
  33. session.setAttribute("count", count);
  34. session.setMaxInactiveInterval(3600);
  35. //访问次数
  36. out.println("您已经访问了  "+count+"  次<br>");
  37. if(session.isNew()){
  38. out.println("这是一个新的Session<br>");
  39. }else{
  40. out.println("这不是一个新的Session<br>");
  41. }
  42. //返回一个包含分配给该 session 会话的唯一标识符的字符串
  43. out.println("getID<br>"+session.getId()+"<br>");
  44. //返回客户端最后一次发送与该 session 会话相关的请求的时间
  45. out.println("getLastAccessedTime<br>"+session.getLastAccessedTime()+"<br>");
  46. out.println("格式化后的getLastAccessedTime<br>"+new Date(session.getLastAccessedTime())+"<br>");
  47. //返回该 session 会话被创建的时间
  48. out.println("getCreationTime<br>"+session.getCreationTime()+"<br>");
  49. out.println("格式化后的getCreationTime<br>"+new Date(session.getCreationTime())+"<br>");
  50. //返回 Servlet 容器在客户端访问时保持 session 会话打开的最大时间间隔,以秒为单位。
  51. out.println("getMaxInactiveInterval<br>"+session.getMaxInactiveInterval()+"<br>");
  52. //返回 String 对象的枚举,String 对象包含所有绑定到该 session 会话的对象的名称
  53. Enumeration e=session.getAttributeNames();
  54. while(e.hasMoreElements()){
  55. String name=(String)e.nextElement();
  56. out.println("name<br>"+name+"<br>");
  57. //返回在该 session 会话中具有指定名称的对象
  58. out.println("getAttribute(name)<br>"+session.getAttribute(name)+"<br>");
  59. }
  60.  
  61. out.println("</body>");
  62. out.println("</html>");
  63. }
  64. }

  

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app>
  3. <servlet>
  4. <servlet-name>TestSession</servlet-name>
  5. <servlet-class>com.zhiqi.TestSession</servlet-class>
  6. </servlet>
  7.  
  8. <servlet-mapping>
  9. <servlet-name>TestSession</servlet-name>
  10. <url-pattern>/f</url-pattern>
  11. </servlet-mapping>
  12. </web-app>

  

【模型11】Filter过滤器

  1. @Override
  2. public void doFilter(ServletRequest sreq, ServletResponse sresp, FilterChain fc)
  3. throws IOException, ServletException {
  4. HttpServletRequest request=(HttpServletRequest)sreq;
  5. HttpSession session=request.getSession();
  6. Object o=session.getAttribute("userNames");
  7. String path=request.getServletPath();
  8. if(o==null && path.indexOf("login.jsp")<0){
  9. RequestDispatcher rd=request.getRequestDispatcher("login.jsp");
  10. rd.forward(sreq, sresp);
  11. }else{
  12. fc.doFilter(sreq, sresp);
  13. }
  14. }

  

  1. <filter>
  2. <filter-name>loginFilter</filter-name>
  3. <filter-class>com.zhiqi.filter.LoginFilter</filter-class>
  4. </filter>
  5. <filter-mapping>
  6. <filter-name>loginFilter</filter-name>
  7. <url-pattern>/*</url-pattern>
  8. </filter-mapping>

  此时如果获取不到session对象啊会把主页mian.jsp转发

【模型12】HttpSessionAttributeListener监听

  1. package com.zhiqi.listener;
  2.  
  3. import javax.servlet.http.HttpSessionAttributeListener;
  4. import javax.servlet.http.HttpSessionBindingEvent;
  5.  
  6. public class SessionAttributeListener implements HttpSessionAttributeListener {
  7.  
  8. @Override
  9. public void attributeAdded(HttpSessionBindingEvent httpSessionBindingEvent) {
  10. System.out.println("添加的属性名"+httpSessionBindingEvent.getName()+"添加的属性值"+httpSessionBindingEvent.getValue());
  11.  
  12. }
  13.  
  14. @Override
  15. public void attributeRemoved(HttpSessionBindingEvent httpSessionBindingEvent) {
  16. System.out.println("删除的属性名"+httpSessionBindingEvent.getName()+"删除的属性值"+httpSessionBindingEvent.getValue());
  17.  
  18. }
  19.  
  20. @Override
  21. public void attributeReplaced(HttpSessionBindingEvent httpSessionBindingEvent) {
  22. // TODO Auto-generated method stub
  23.  
  24. }
  25.  
  26. }

  

  1. <servlet>
  2. <servlet-name>LogoutServlet</servlet-name>
  3. <servlet-class>com.zhiqi.web.Logout</servlet-class>
  4. </servlet>
  5.  
  6. <servlet-mapping>
  7. <servlet-name>LogoutServlet</servlet-name>
  8. <url-pattern>/logout</url-pattern>
  9. </servlet-mapping>

  

Servlet编程-步步为营的更多相关文章

  1. Servlet编程

    Servlet编程 1. servlet概念及相关接口简介 java Servlet是运行在web服务器或应用服务器上的程序,他是作为来自web浏览器或其他HTTP客户端的请求和HTTP服务器山的数据 ...

  2. Java复习10.Servlet编程

    Java复习10. Servlet编程知识 20131008 前言: 之前在大三下的时候,学习了一个月的JSP和Servlet知识,但是没有什么项目经验,把JSP Web开发学习实录看了前面几张,后面 ...

  3. JSP编程-步步为营

    [第一个JSP举例] header.jsp <%@ page language="java" contentType="text/html; charset=utf ...

  4. Servlet编程实例1

    编程目的:使用JSP+servlet,来实现一个登陆页面,登陆成功则提示成功,登陆失败则提示失败. 编程要求:登陆页面由login.jsp负责显示,登陆成功由success.jsp负责显示,登陆失败由 ...

  5. Servlet 编程 请求的转发

    在上篇的基础上,修改servlet *转发只能在同一应用内转发. 将forward 地址改为:youku.com  不能访问 重定向是可以访问外部应用的

  6. Servlet 编程 简单流程处理(重定向)

    流程(来自jiekexueyuan) servlet sucess.jsp error.asp同理 运行结果:

  7. Servlet编程实例2

    上次实验中利用HttpServletRespon.sendRedict()方法来实现页面的转跳,而这种重定向请求的方法无法传递缓存的内容. 所以为了做出改进,这次使用RequestDispatcher ...

  8. Servlet编程实例-servlet学习之旅(三)

    LoginServlet代码: public class LoginServlet extends HttpServlet{ @Override protected void service(Http ...

  9. servlet编程操作

    所谓servlet指:服务器处理来自Web浏览器或其他客户端的HTTP请求的服务器程序.客户端向服务器发送Http请求,经Tomcat封装处理转给Servlet容器,Servlet容器在把请求或回应交 ...

随机推荐

  1. poj 3750 小孩报数问题 解题报告

    题目链接:http://poj.org/problem?id=3750 约瑟夫问题,直接模拟即可. #include <iostream> #include <string> ...

  2. Ubuntu的一些常用快捷键

    Ubuntu操作基本快捷键 * 打开主菜单 = Alt + F1 * 运行 = Alt + F2 * 显示桌面 = Ctrl + Alt + d * 最小化当前窗口 = Alt + F9 * 最大化当 ...

  3. 用jquery追加的元素不能触发treeview事件

    在追加的元素后面添加: $("#navigation").treeview({ persist: "location", collapsed: true, un ...

  4. HDU2050离散数学折线分割平面

    折线分割平面 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Subm ...

  5. Android之shape属性详解

    有时候 ,为了满足一些需求,我们要用到 shape 去定义 一些背景,shape 的用法 跟图片一样 ,可以给View设置 Android:background="@drawable/sha ...

  6. error: Refusing to undefine while domain managed save image exists

    [root@ok libvirt]# virsh undefine win7 error: Refusing to undefine while domain managed save image e ...

  7. Android ActionBar 一步一步分析 (转)

    原文摘自:http://blog.csdn.net/android2me/article/details/8874846 1.Action Bar 介绍 我们能在应用中看见的actionbar一般就是 ...

  8. C++的那些事:表达式与语句

    表达式 1,应该把函数调用当作是一种运算符,这种运算符对参与运算的对象没有数量限制. 2,关于“左值(lvalue)”和“右值(rvalue)”可以做一个简单的归纳:当一个对象被用作右值的时候,用的是 ...

  9. 铭飞MCMS内容管理系统完整开源版J2EE代码

    当前版本:4.6.0铭飞MS官网:http://ms.mingsoft.net官网同时提供一键运行版本下载,请步移官网....QQ交流群号1:221335098很多人说铭飞MCMS是大天朝国唯一完整开 ...

  10. Eclipse+Tomcat部署项目的一些总结

    1. eclipse运行web项目后, 默认保存到 workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps. ...