select中常用的对象

ServletRequest对象

·javax.servlet.ServletRequest对象主要用于向servlet提供客户端请求信息,可以从中获取到任何请求信息 ;
·Servlet容器创建一个ServletRequest对象,并将其作为参数传递给Servlet的service方法

在这里插入图片描述

HttpServletRequest对象

基本概念

·javax.servlet.http.HttpServletRequest对象是ServletRequest接口的子接口,主要用于提供HTTP 请求信息的功能
·发送HTTP请求时,HTTP请求头直接由浏览器设置
·可直接通过HttpServletRequest对象提供的一系列get方法获取请求头数据

HttpServletRequest对象的生命周期

当有请求到达Tomcat时,Tomcat会创建HttpServletRequest对象,并将该对象通过参数的方式传递到我们Servlet的方法中,当处理请求处理完毕并产生响应后该对象生命周期结束

常用方法

获取请求信息(如: 请求的项目名, 请求方式, 请求协议类型等)
·获取请求头信息
·获取请求数据(发送请求携带的参数)

获取请求信息

@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    String contextPath = req.getContextPath();//请求的项目名
    String method = req.getMethod();//请求方式
    String scheme = req.getScheme();//请求协议类型
    String protocol = req.getProtocol();//请求协议类型/版本号
    StringBuffer requestURL = req.getRequestURL();//请求的完整URL
    String requestURI = req.getRequestURI();//请求行中指定资源部分
    String remoteAddr = req.getRemoteAddr();//请求客户机的IP地址
    String localAddr = req.getLocalAddr();//请求WEB服务器的IP地址
    int localPort = req.getLocalPort();//请求WEB服务器的端口
}

获取请求头信息

protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
     //根据请求头中的 key 获取 value
    String header = req.getHeader("Connection");
    System.out.println(header);
    System.out.println("----------");
    //获取所有请求头中的key
    Enumeration<String> headerNames = req.getHeaderNames();
    while (headerNames.hasMoreElements()){
        //获取每一个key
        String key = headerNames.nextElement();
        //  根据key 或取 values
        String value = req.getHeader(key);
        System.out.println(key + ": "+ value);
    }
}

获取请求数据

1)获取的参数值只有一个(如: 用户名, 密码, 生日, 单选框, 下拉列表, 大文本框)

String p = req.getParameter("参数名");

获取的参数值大于一个(如: 复选框)

String[] ps = req.getParameterValues("参数名");

获取所有的参数名

Enumeration<String> parameterNames = req.getParameterNames();
<form action="servlet1" method="get">
    姓名:<input type="text" name="username" value="aaa"/><br/>
    爱好:
    <input type="checkbox" name="hobby" value="1"/>篮球
    <input type="checkbox" name="hobby" value="2"/>足球
    <input type="checkbox" name="hobby" value="3"/>音乐
    <input type="checkbox" name="hobby" value="4"/>看书
    <input type="checkbox" name="hobby" value="5"/>看报纸
    <br/>
    星期
    <input type="radio" name="week" value="1"/><input type="radio" name="week" value="2"/><input type="radio" name="week" value="3"/><input type="radio" name="week" value="4"/><input type="radio" name="week" value="5"/><input type="radio" name="week" value="6"/><input type="radio" name="week" value="7"/><br/>
    籍贯:
    <select name="pro">
        <option value="1">吉林</option>
        <option value="2">黑龙江</option>
        <option value="3">辽宁</option>
        <option value="4">内蒙古</option>
    </select>
    <br/>
    介绍
    <textarea name="introduce" >aaa</textarea>
    <input type="submit" value="提交数据">
</form>

Servlet

public class TestServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {  //设置请求编码   req.setCharacterEncoding("utf-8");
        //获取用户名
        String username = req.getParameter("username");
        //获取爱好
        String[] hobbies = req.getParameterValues("hobby");
        //获取星期
        String week = req.getParameter("week");
        //获取省份
        String pro = req.getParameter("pro");
        //获取自我介绍
        String introduce = req.getParameter("introduce");
        //获取所有的参数名
        Enumeration<String> parameterNames = req.getParameterNames();
        while (parameterNames.hasMoreElements()){
            String key = parameterNames.nextElement();
            String value = req.getParameter(key);
            System.out.println(key+": "+value);
        }
   }
}

ServletResponse对象

基本概念

javax.servlet.ServletResponse对象用于定义一个对象 向客户端发送响应
· Servlet容器创建ServletResponse对象,并将其作为参数传递给servlet的service方法, 在service方法中借助该对象完成向客户端的响应

常用方法

在这里插入图片描述

使用示例

protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    //设置响应的编码格式
    resp.setCharacterEncoding("utf-8");
    resp.setContentType("text/html;charset=utf-8");
    //获取响应输出流
    PrintWriter writer = resp.getWriter();
    //输出html页面
    writer.println("<html>");
    writer.println("<head>");
    writer.println("<title>我的页面</title>");
    writer.println("</head>");
    writer.println("<body>");
    writer.println("<h1>你好啊!</h1>");
    writer.println("</body>");
    writer.println("</html>");
}

ServletConfig对象

javax.servlet.ServletConfig对象用于描述Servlet本身的相关配置信息,在初始化期间用于将信息传递给Servlet配置对象
· 在Servlet中通过this.getServletConfig()方法可以父类中获得ServletConfig对象

在这里插入图片描述

使用示例

web.xml

servlet>
    <servlet-name>servlet4</servlet-name>
    <servlet-class>com.bjsxt.servlet.TestServlet</servlet-class>
    <init-param>
        <param-name>username</param-name>
        <param-value>zs</param-value>
    </init-param>
</servlet>
<servlet-mapping>
    <servlet-name>servlet4</servlet-name>
    <url-pattern>/testServlet</url-pattern>
</servlet-mapping>

servlet

public class TestServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //从父类中获取ServletConfig对象
        ServletConfig servletConfig = this.getServletConfig();
        //获取当前servlet的初始化参数
        String username= servletConfig.getInitParameter("username");
        //设置响应的编码格式
        resp.setCharacterEncoding("utf-8");
        resp.setContentType("text/html;charset=utf-8");
        //获取响应输出流
        PrintWriter writer = resp.getWriter();
        //输出
        writer.println("获取当前servlet的初始化参数 username: "+ username);
    }
}

ServletContext对象

基本概念

javax.servlet.ServletContext对象主要用于定义一组方法,Servlet使用这些方法与它的Servlet容器通信
· 服务器容器在启动时会为每个项目创建唯一的一个ServletContext对象,用于实现多个Servlet之间的信息共享和通信
· 在Servlet中通过this.getServletContext()方法可以父类中获得ServletContext对象

ServletContext对象生命周期

当容器启动时会创建ServletContext对象并一直缓存该对象,直到容器关闭后该对象生命周期结束。ServletContext对象的生命周期非常长,所以在使用全局容器时不建议存放业务数据, 存放的数据为整个项目需要共享的数据

在这里插入图片描述
web.xml

<context-param>
    <param-name>charset</param-name>
    <param-value>utf-8</param-value>
</context-param>

servlet(当前项目中所有的servlet共享)

protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    //从父类中获取ServletContext对象
    ServletContext servletContext = this.getServletContext();
    //获取全局初始化参数
    String charset = servletContext.getInitParameter("charset");
    //设置响应编码格式
    resp.setCharacterEncoding(charset);
    resp.setContentType("text/html;charset="+charset);
    //获取响应输出流
    PrintWriter writer = resp.getWriter();
    //输出
    writer.println("获取当前项目共享的初始化参数 charset: "+ charset);
}

常见对象总结

HttpServletRequest对象:

作用:

专门处理Http的请求

  1. 可以获取请求相关参数(请求数据[参数], 请求信息, 请求头信息)
    2.可以存储数据, 获取存储的数据(一次请求有效)
    发送请求开始, 响应结束 一次请求
    setAttribute(key,value) getAttribute(key)
  2. 可以完成请求的转发
    生命周期: 当有请求到达Tomcat时,Tomcat会创建HttpServletRequest对象,并将该对象通过参数的方式传递到我们Servlet的方法中,当处理请求处理完毕并产生响应后该对象生命周期结束

HttpServletResponse对象:

作用:

向客户端发送响应

  1. 可以向页面响应内容
  2. 可以完成请求的重定向
  1. ServletContext对象:

作用:

实现多个Servlet之间的信息共享和通信, 一个项目只有一个ServletContext对象, 所有servlet都共享该对象
1.可以获取全局初始化参数(当前项目共享) getInitParameter(key)
2.可以存储数据, 获取数据(当前项目共享)
setAttribute(key,value) getgetAttribute(key)
4) ServletConfig对象:
作用: 描述Servlet本身的相关配置信息

  1. 可以获取当前Servlet的初始化参数(当前Servlet有效)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DNCS高级工程师

你的创作是我打赏的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值