博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Servlet组件合并
阅读量:7131 次
发布时间:2019-06-28

本文共 5745 字,大约阅读时间需要 19 分钟。

一、开发web项目的步骤:

  1:创建web project
  2:导入第三方jar包,和数据库相应的脚本文件等
  3:添加配置文件,db.properties
  4:编写工具类,DBUtil等
  5:根据Dao思想编写相应代码
    包含:
      实体类,接口,实现类
  6:编写业务层的代码----(M层:model,包含持久层和业务层)
  7:编写Servlet组件。(C层:controller,控制层)
  8:配置web.xml文件

  测试部分:

    第一步:启动服务器tomcat
    第二步: 将项目部署到服务器上(代码更新,需要重新部署)
    第三步: 在浏览器上输入请求路径。
二、容器处理请求资源路径的问题:
    1:什么是请求资源路径??
      http://localhost:8088/appName/xx.html;
    /appName/xx.html是请求资源路径。
    2:容器如何处理请求资源路径
      (1)浏览器通过IP,Port向容器发送请求,建立连接。
      (2)根据appName找到服务器内对应的应用程序,再根据
        xx.html(里面action=“url")去匹配web.xml中的<url-pattern>的值。
        匹配成功后,去执行对应的web组件。
    3:精确匹配。
        容器在处理请求资源路径时,先会严格精确
      的找<url-pattern>的值,如 请求资源
      路径为:appName/addEmp.html,会先
      查找<url-pattern>的值有没有一个是addEmp.html;
      如果有,就会执行相应的web组件
      (即使此时有addEmp.html页面,也不会显示页面)
     4:通配符匹配。
      *:可以匹配n个任何字符,
      如果<url-pattern>的值为 /*,表示任何请求资源路径
      都会执行此web组件。
        reg:
          http://ip:port/appName/abc
          http://ip:port/appName/abc.html
          http://ip:port/appName/abc/abc.html
    5:后缀匹配.
        如果<url-pattern>的值为
      *.后缀,此时一定不能在*前添加"/"。
      当请求资源路径为此后缀的格式时,就会执行对
      应的web组件
        reg:
          <url-pattern>*.do<url-pattern>
          请求资源路径:
          http://ip:port/appName/abc.do
          http://ip:port/appName/abc/abc.do
     6:无匹配的servlet处理
          如果请求资源路径在web.xml中无任何匹配,那么就会查找
         是否有此文件。如果有,将文件响应给浏览器,如果没有,
        报404错误。
  总结:三种匹配的优先级:
    精确匹配>通配符匹配>后缀匹配


一、

  Servlet组件的合并问题
    1:为什么要合并?
        因为Servlet组件充当的是控制器的角色,通过分析资源路径,
      用来分发不同的资源。所以,一个Servlet组件
      就可以做到分发不同的资源。
    2:如何合并?
        request.getRequestURI():此方法返回的
      是请求资源路径,我们可以使用分支结构来进行控制
      资源的分发。
      reg:
        String path =request.getRequestURI();
        if(path.equals("/appName/listEmp.do")){
          //组件的内容
        }else if(path.equals("/appName/deleteEmp.do")){
               //组件内容
        }

  二、采用后缀匹配--------------  .emp

1 public class EmpServlet extends HttpServlet {  2     public void service(HttpServletRequest request, HttpServletResponse response)  3             throws ServletException, IOException {  4         //获取请求资源路径  5         request.setCharacterEncoding("utf-8");  6         response.setContentType("text/html;charset=utf-8");  7         PrintWriter pw = response.getWriter();  8         EmployeeDao dao = DaoFactory1.getInstance();  9   10         String path = request.getRequestURI(); 11         if("/ServletDay05/listEmp.emp".equals(path)){ 12             List
emps = dao.findAll(); 13 pw.println("
"); 14 pw.println("
"); 15 for(Employee e:emps){ 16 pw.println("
"); 17 } 18 pw.println("
编号 姓名 操作
"+e.getId()+" "+e.getName()+" 修改删除
"); 19 pw.println("
添加员工"); 20 pw.close(); 21 }else if("/ServletDay05/addEmp.emp".equals(path)){ 22 String name = request.getParameter("name"); 23 int age = Integer.parseInt(request.getParameter("age")); 24 double salary = Double.parseDouble(request.getParameter("salary")); 25 char gender = request.getParameter("gender").charAt(0); 26 String[] h1 = request.getParameterValues("hobby"); 27 String hobby = ""; 28 for(int i=0;i
"); 48 pw.println("id:"+e.getId()); 49 pw.println("name:
"); 50 pw.println("age:
"); 51 pw.println("salary:
"); 52 if(e.getGender()=='f'){ 53 pw.println("gender:
"); 54 pw.println("gender:
"); 55 }else{ 56 pw.println("gender:
"); 57 pw.println("gender:
"); 58 } 59 pw.println("hobby:"); 60 if(e.getHobby().contains("1")){ 61 pw.println("
读书 "); 62 }else{ 63 pw.println("
读书 "); 64 } 65 if(e.getHobby().contains("2")){ 66 pw.println("
音乐"); 67 }else{ 68 pw.println("
音乐 "); 69 } 70 if(e.getHobby().contains("3")){ 71 pw.println("
电影 "); 72 }else{ 73 pw.println("
电影"); 74 } 75 pw.println("
"); 76 pw.println("loc:
"); 91 pw.println("
"); 92 pw.println(""); 93 }else if("/ServletDay05/save.emp".equals(path)){ 94 int id = Integer.parseInt(request.getParameter("id")); 95 String name = request.getParameter("name"); 96 int age = Integer.parseInt(request.getParameter("age")); 97 double salary = Double.parseDouble(request.getParameter("salary")); 98 char gender = request.getParameter("gender").charAt(0); 99 String[] h1 = request.getParameterValues("hobby");100 String hobby = "";101 for(int i=0;i

 

转载于:https://www.cnblogs.com/xiaozelulu/p/8835180.html

你可能感兴趣的文章
照猫画虎学gnuplot之折线图
查看>>
ZooKeeper安装部署
查看>>
第1章第1节练习题10 查找中位数
查看>>
【深入JAVA EE】Spring配置文件解析
查看>>
dropout
查看>>
使用MYCAT轻松实现MYSQL水平分片
查看>>
程序员眼中的 SQL Server-执行计划教会我如何创建索引?
查看>>
EF 事务(非分布式事务)
查看>>
关于“淘宝爆款”的数据抓取与数据分析
查看>>
推断Windows版本号新方法
查看>>
Android NDK开发----- JNI多线程
查看>>
Angular 2的12个经典面试问题汇总(文末附带Angular測试)
查看>>
JWT(JSON Web Token) 多网站的单点登录,放弃session
查看>>
oc37--类工厂方法
查看>>
【JSP】EL表达式语言
查看>>
安装Centos6.9分区指南
查看>>
将完整的Maven远程存储库下载到本地存储库(别试了,不太可取)
查看>>
背水一战 Windows 10 (28) - 控件(文本类): TextBox, PasswordBox
查看>>
Ubuntu 16.04利用SecureCRT上传/下载文件(sz/rz命令)
查看>>
大数据开发 | MapReduce介绍
查看>>