codercheng 2020-01-18
MVC设计模式
一、Model模型(各个功能)
登录、增加、删除
功能的实现。用JavaBean实现
处理业务逻辑(封装业务逻辑的JavaBean)
处理数据(封装数据的JavaBean)
二、View视图
负责页面的显示;表单、表格
用于展示以及与用户交互,使用 html、js、css、jsp、jQuery等前端技术实现
三、Controller控制器(负责分发)
接受各种请求,将请求跳转到模型进行处理;模型处理完毕后,再将模型处理的结果返回给请求处。
可以用jsp实现,但是一般建议使用Servlet实现控制器
进行视图、模型的选择
jsp->java(servlet)->jsp
Servlet:
sevlet是一个符合一定规范的Java类
1、必须继承javax.servlet.http.HttpServlet
2、必须重写其中的 doGet()或doPost()方法
doGet()
doPost()
Servlet要想使用:
servlet2.5:配置web.xml(使用eclispe生成会帮你自动配置)
servlet3.0:@WebServlet
项目的根目录:WebContent、src
手动创建Servlet步骤:
1、编写一个类,继承HttpServlet
2、重写doGet()、doSet()方法
3、编写web.xml中Servlet的映射关系
利用eclispe快速生成Servlet:
点击next
next
在此页面可以选择你想要生成的方法,点击finish
此处本人已将自带的注释删除,且web.xml已经自动映射完毕
Servlet生命周期
Servlet 规范规定,所有的 servlet 必须实现 javax.servlet.Servlet 接口。
1. 第一次调用时,将执行初始化方法:init(ServletConfig)
2. 每一次调用,都将执行 service(ServletRequestf ServletResponse)方法
3. 服务器关闭,或项目移除:destroy方法
JavaEE规范中提供Servlet接口实现类:
Generic Servlet:通用 servlet 实现 。没有实现 service
HttpServlet:与Http协议有关的实现。实现seivice方法,完成与http协议有关的操作。
request.getMethodO 获得请求方式(get、post)
如果是get,将调用doGet()
如果是post.将调用doPost()
生命周期:就是一个对象从创建到销毁的过程.
Servlet生命周期:Servlet从创建到销毁的过程.
*何时创建:用户第一次访问Servlet创建Servlet的实例(单实例)
*何时销毁:当项目从服务器中移除的时候,或者关闭服务器的时候.
用户第一次访问Servlet的时候,服务器会创建一个Servlet的实例,那么Servlet中init方法就会执行.
任何一次请求服务器都会创建一个新的线程访问Servlet中的service的方法.在service方法内部根
据请求的方式的不同调用doXXX的方法.(get请求调用doGet,post请求调用doPost).当Servlet中服
务器中移除掉,或者关闭服务器Servlet的实例就会被销毁,那么destroy方法就会执行.
Servlet API
由两个软件包组成: 对应于HTTP协议的软件包、对应于除了HTTP协议以外的其他软件包
即Servlet API可以适用于 任何 通信协议。
我们学习的Servlet,是位于javax.servlet.http包中的类和接口,是基础HTTP协议。
ServletConfig:接口
ServletContext getServletContext():获取Servlet上下文对象 application
String getInitParameter(String name):在当前Servlet范围内,获取名为name的参数值(初始化参数)
package org.servlet; import java.io.IOException; import javax.servlet.ServletConfig; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class myservlet extends HttpServlet { private static final long serialVersionUID = 1L; public myservlet() { super(); // TODO Auto-generated constructor stub } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub response.getWriter().append("Served at: ").append(request.getContextPath()); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub doGet(request, response); } @Override public void init(ServletConfig arg0) throws ServletException { System.out.println("init running......"); } @Override public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException { System.out.println("Quickstartservlet running......"); } @Override public void destroy() { System.out.println("destroy running......"); } @Override public ServletConfig getServletConfig() { // TODO Auto-generated method stub return null; } @Override public String getServletInfo() { // TODO Auto-generated method stub return null; } }