1、书写一个servlet的方式
Servlet必须直接或间接实现 javax.servlet.Servlet 接口
通过继承javax.servlet.GenericServlet 类实现跨协议的 Servlet
通过继承javax.servlet.HttpServlet实现HTTP Servlet
自己定义个servlet,然后其他的java类都继承自己写好的servlet就可以了
2、关系图
3、其他内容
Servlet接口:所有servlet必须直接或间接实现的类。
init( ServletConfig config )
service(ServletRequest req, ServletResponse res)
destroy()
getServletInfo():获得Servlet信息。
getServletConfig():获得Servlet配置相关信息
GenericServlet抽象类:implements Servlet, ServletConfig
定义了一个通用的,不依赖于具体协议的Servlet,给出了除service()方法外的其余四个方法的实现。
public void init(ServletConfig config) thows SerletExcepiton
protected void init() thows SerletExcepiton
第一个是servlet接口的init(),调用第二个init(), 重写第二个init()即可
HttpServlet类
public void service(ServletRequest req, ServletResponse res)
protected void service(HttpServletRequest req, HttpServletResponse res)
protected void doGet(request,response)
protected void doPost(request,response)
public service()是父类的方法,protected service()是自己的方法。前者首先把参数分别转换为HttpServletRequest和HttpServletResponse ,再调用protected service();
protected service()根据HTTP请求方法的类型调用相应doXXX()方法
我们自己编写的servlet应该继承HttpServlet,一般要覆盖Service或者doPost/doGet方法。
第五节 参数读取
1、配置参数读取的意义:
把参数提取到配置的信息中这样就大大的增加了整个代码的使用性方面后期的代码维护
需要知道, 在这里的参数读取仅仅是读到程序里面。
2、实现代码
public class ParamServlet extends HttpServlet{ String enc ; String encc; String enc2; @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("初始化参数:"+enc); System.out.println(encc); System.out.println("上下文参数:"+enc2); } @Override public void init() throws ServletException { //获得初始化参数 enc = this.getInitParameter("enc"); //获得初始化参数的形式二 encc= this.getServletConfig().getInitParameter("enc"); //获得上下文参数 this.getServletContext()---获得全局的对象 enc2 = this.getServletContext().getInitParameter("enc2"); System.out.println("读取初始化参数完毕"); } } |
第六节 中文乱码处理
1、为什么使用中文乱码
我们在实现登录时候 ,需要进行前台的数据。获得数据以后可能会出现中文乱码,那应该如何处理呢?
2、get方式和Post提交方式的区别
[1]get数据的传输是不安全的 ,post数据传递更加安全
[2]get方式数据传递有大小限制 post传输数据没有限制
[3]get传输的数据速度比较快 post比较慢
3、乱码处理
大家需要清楚,这个乱码是接受前台页面数据的乱码。
乱码分为两种 (get和post)
POST方式处理 request.setCharacterEncoding("utf-8"); GET方式处理 {方式一} byte [] bytes = str.getBytes("iso-8859-1"); String cstr = new String(bytes,"utf-8"); {方式二} 在server.xml中指定对应的服务器编码 URIEncoding="utf-8" |