分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 前端开发

HttpServletRequest和ServletRequest的区别以及HttpServletRequest对象方法的用法

发布时间:2023-09-06 02:14责任编辑:郭大石关键词:暂无标签

HttpServletRequest和ServletRequest都是接口

HttpServletRequest继承自ServletRequest 

HttpServletRequest比ServletRequest多了一些针对于Http协议的方法。 例如:

getHeader(), getMethod() , getSession() 

 ???@Override ?????public void doFilter(ServletRequest request, ServletResponse response, ?????????????FilterChain filterChain) throws IOException, ServletException { ?????????// 过滤用户请求,判断是否登录 ?????????HttpServletRequest httpServletRequest = (HttpServletRequest)request; ?????????HttpServletResponse httpServletResponse = (HttpServletResponse)response; ?????????httpServletResponse .setContentType("text/html;charset=utf-8"); ?????????httpServletRequest.setCharacterEncoding("utf-8"); ?????????httpServletResponse.setCharacterEncoding("utf-8"); ???????????????????String username = (String)httpServletRequest.getSession().getAttribute("username"); ?????????if (username == null) { ?????????????String path = httpServletRequest.getContextPath(); ?????????????httpServletResponse.sendRedirect(path+"/index.jsp"); ?????????} ?????????filterChain.doFilter(httpServletRequest, httpServletResponse); ?????} ?

1. 获得客户机信息
    getRequestURL方法返回客户端发出请求时的完整URL。
    getRequestURI方法返回请求行中的资源名部分。
    getQueryString 方法返回请求行中的参数部分。
    getRemoteAddr方法返回发出请求的客户机的IP地址 
    getRemoteHost方法返回发出请求的客户机的完整主机名
    getRemotePort方法返回客户机所使用的网络端口号
    getLocalAddr方法返回WEB服务器的IP地址。
    getLocalName方法返回WEB服务器的主机名 
    getMethod得到客户机请求方式
 2.获得客户机请求头 

    getHeader(string name)方法 
    getHeaders(String name)方法 
    getHeaderNames方法 

 3. 获得客户机请求参数(客户端提交的数据)
    getParameter(name)方法
    getParameterValues(String name)方法
    getParameterNames方法 
    getParameterMap方法


例子程序:

 ???public void doGet(HttpServletRequest request, HttpServletResponse response) ?????????????throws ServletException, IOException { ?????????????System.out.println("getRequestURL: "+request.getRequestURL()); ?????????????System.out.println("getRequestURI: "+request.getRequestURI()); ?????????????System.out.println("getQueryString: "+request.getQueryString()); ?????????????System.out.println("getRemoteAddr: "+request.getRemoteAddr()); ?????????????System.out.println("getRemoteHost: "+request.getRemoteHost()); ?????????????System.out.println("getRemotePort: "+request.getRemotePort()); ?????????????System.out.println("getRemoteUser: "+request.getRemoteUser()); ?????????????System.out.println("getLocalAddr: "+request.getLocalAddr()); ?????????????System.out.println("getLocalName: "+request.getLocalName()); ?????????????System.out.println("getLocalPort: "+request.getLocalPort()); ?????????????System.out.println("getMethod: "+request.getMethod()); ?????????????System.out.println("-------request.getParamterMap()-------"); ?????????????//得到请求的参数Map,注意map的value是String数组类型 ?????????????Map map = request.getParameterMap(); ?????????????Set<String> keySet = map.keySet(); ?????????????for (String key : keySet) { ?????????????String[] values = (String[]) map.get(key); ?????????????for (String value : values) { ?????????????????System.out.println(key+"="+value); ?????????????} ??????????} ?????????????System.out.println("--------request.getHeader()--------"); ?????????????//得到请求头的name集合 ?????????????Enumeration<String> em = request.getHeaderNames(); ?????????????while (em.hasMoreElements()) { ?????????????String name = (String) em.nextElement(); ?????????????String value = request.getHeader(name); ?????????????System.out.println(name+"="+value); ?????????} ???????????????????} ?

浏览器上地址栏:http://localhost:8080/RequestAndResponse/requestmethod?name=sunjob&password=123456&password=haha

控制台输出:

 ???getRequestURL: http://localhost:8080/RequestAndResponse/requestmethod ?????getRequestURI: /RequestAndResponse/requestmethod ?????getQueryString: name=sunjob&password=123456&password=haha ?????getRemoteAddr: 127.0.0.1 ?????getRemoteHost: 127.0.0.1 ?????getRemotePort: 2374 ?????getRemoteUser: null ?????getLocalAddr: 127.0.0.1 ?????getLocalName: localhost ?????getLocalPort: 8080 ?????getMethod: GET ?????-------request.getParamterMap()------- ?????name=sunjob ?????password=123456 ?????password=haha ?????--------request.getHeader()-------- ?????host=localhost:8080 ?????user-agent=Mozilla/5.0 (Windows NT 5.1; rv:17.0) Gecko/20100101 Firefox/17.0 ?????accept=text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 ?????accept-language=zh-cn,en-us;q=0.8,zh;q=0.5,en;q=0.3 ?????accept-encoding=gzip, deflate ?????connection=keep-alive ?????cache-control=max-age=0 ?

HttpServletRequest和ServletRequest的区别以及HttpServletRequest对象方法的用法

原文地址:https://www.cnblogs.com/a-du/p/9634229.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved