zoukankan      html  css  js  c++  java
  • Servlet 的API

    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、为什么使用中文乱码

    我们在实现登录时候 ,需要进行前台的数据。获得数据以后可能会出现中文乱码,那应该如何处理呢?

    2get方式和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"

  • 相关阅读:
    小朋友排队--第五届蓝桥杯
    Spring IOC源代码具体解释之整体结构
    Libimseti推荐系统
    Codeforces Round #277.5 (Div. 2)(C题)
    数据库经常使用函数
    Command terminated by signal 11
    winform程序公布后,client下载报错“您的 Web 浏览器设置不同意执行未签名的应用程序”
    Cocos2d-x学习笔记(四) 布景层的加入移除
    FMSC 使用理解
    将浮点数保持几位小数,尾数舍入的Format函数
  • 原文地址:https://www.cnblogs.com/vincentmax/p/14277508.html
Copyright © 2011-2022 走看看