默认计划
(1人评价)
JavaWeb-JSP-Servlet实战开发2017【极限IT JAVA专业第8课】

从这节课 开始JAVAWEB

价格 ¥ 199.00
该课程属于 【极限IT】JAVA工程师训练营 领券低至2980元
请加入后再学习

DispatcherServlet程序类

MVC的本质含义:
- 所有用户的请求使用Servlet统一进行处理

- 处理后的结果发给JSP进行显示

- 同时使用EL+JSTL简化Scriptlet

- 任何的一次提交都不要直接到jsp页面,必须经过Servlet

 

MVC模式中将请求交给Servlet处理的原因

1. Servlet可以实现数据的验证处理

2. 可以对数据进行一些先期的处理

3. Servlet是纯粹的Java程序,可以使用更多的可重用设计,简化代码

4. Servlet可以使用request属性,传递显示内容到JSP页面(请求转发)

 

多业务支持

概念:是指一个Servlet可以处理不同的用户操作

1. 不管程序使用了多少开发技术,要进行WEB的请求处理,只能使用Servlet中的doGet(), doPost(),两个方法实现

2. 要实现多业务的操作处理,最简单方案是在每次发送请求的时候设置一个请求标志位

 

初步实现

@WebServlet(urlPatterns="/empservlet")
//列表操作:http://localhost:8080/myproject/empservlet?status=list
//修改操作:http://localhost:8080/myproject/empservlet?status=edit
//增加操作:http://localhost:8080/myproject/empservlet?status=add
public class EmpServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String urlPage = "/errors.jsp";
        String status = req.getParameter("status");
        if(status!=null && "".equals(status)){
            if("add".equals(status)){//有状态码,区分不同的用户请求
                urlPage = this.add(req,resp);
            }else if("edit".equals(status)){
                urlPage = this.edit(req,resp);
            }else if("list".equals(status)){
                urlPage = this.list(req,resp);
            }
        }
        req.getRequestDispatcher(urlPage).forward(req,resp);
    }
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException,IOException{
        this.doGet(req,resp);
    }
    public String list(HttpServletRequest req, HttpServletResponse resp) throws ServletException,IOException {
        System.out.println("*****【Servlet输出】列表雇员信息");
        return "/emp_list.jsp";
    }
    public String add(HttpServletRequest req, HttpServletResponse resp) throws ServletException,IOException {
        System.out.println("*****【Servlet增加】列表雇员信息");
        return "/forward.jsp";
    }
    public String edit(HttpServletRequest req, HttpServletResponse resp) throws ServletException,IOException {
        System.out.println("*****【Servlet修改】列表雇员信息");
        return "/forward.jsp";
    }
}

不能使用?的形式完成的原因

1. 如果使用了地址重写处理参数,那么这个"?"对于整个程序的设计非常致命

2. 如果使用了表单提交,意味着还需要传递一个隐藏域表示状态

 

[展开全文]

授课教师

讲师

课程特色

视频(142)
图文(2)
文档(38)

学员动态

Drop 加入学习
妥了 加入学习
xiepeng 加入学习
charmyCode 加入学习
luojianglai 加入学习