`
arual
  • 浏览: 10784 次
社区版块
存档分类
最新评论

HttpServletRequest相关

    博客分类:
  • jee
 
阅读更多

新建项目amie-servlet

写一个HTML用来发请求:

 

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Hi</title>
</head>
<body>
<!-- 提交请求的方式1-->
<a href="/amie-servlet/Demo1?username=xxx">click!</a>

<!-- 提交请求的方式2-->
<form action="/amie-servlet/Demo1" method="post">
   NAME: <input type="text" name="username">
   <input type="submit" value="SUBMIT IT">
</form>
</body>
</html>

 

 

接受客户端发过来的请求:

方式一:

 

String value = request.getParameter("username");
if(value!=null&&!value.trim().equals(""))//要先check		
{
    System.out.println(value);
}

 

 

方式二:

 

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {		
	Enumeration e = request.getParameterNames();
	while(e.hasMoreElements()){
	     String param = (String )e.nextElement();
	     String v = request.getParameter(param);
	     System.out.println(v);
		}

	}

 

 

方式三:

 

String[] values = request.getParameterValues("username");
//得到parameterName=‘username’的所有值
		for(String v : values){
		  System.out.println(v);
		}
		//注:尽量避免用上述方式遍历。如果取到的values为空,便发生了空指针异常。
		//应采用下述方式:
		for(int i=0;values!=null&&i<values.length;i++){
			System.out.println(values[i]);
		}

 

方式四:

将所有的参数导入到一个Map中,再通过beanUtils  populate 进我们自己的domain类中。

Beanutil需要log4j的支持。

如果不使用maven,那么直接将beanUtils 和log4j的jar包放到WEB-INF/lib中即可

Map map = request.getParameterMap();
BeanUtils.populate(user, map);

 

我们自己也可以通过反射实现BeanUtils的populate方法。BeanUtils另一个比较实用的方法:

copyProperties(userBean,formBean)

将formBean中的属性拷贝到userBean中。

 

--------------关于request中得到数据的乱码问题----------------

1. 对客户端提交方式为get的数据

String username = request.getParameter("username");

username = new String(username.getBytes("iso8859-1"),"UTF-8");

2. 对提交方式为post的数据

request.setCharacterEncoding("UTF-8");//只对post提交有效

String username=request.getParameter("username");

 

-------------------关于地址的写法------------------

任何地址都以/ 开头,如果此地址给服务器使用,那么/代表当前web应用,

如果此地址给浏览器使用,那么/代表网站 (一个网站下有多个web应用)

当获取url中的某个资源(服务中的某个资源)通通使用/,

若获取硬盘中的某个资源时, 用\\

 

 

 

关于httpServletresponse

服务器提供了两种方式让我们输出东西到HttpServletResponse :

response.getOutputStream();--写字节流

response.getWriter();--写字符流

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		String data="大象";
		ServletOutputStream out = response.getOutputStream();		
		//注: 服务器将内容(以数字的形式)发给浏览器浏览器默认查的码表是gb2312.但我们发送的是UTF-8, 所以应该通知浏览器,用UTF-8打开我们发过去的这个东东。
		//通知浏览器的方式有一下两种;
		response.setHeader("Content-type", "text/html;charset=UTF-8");
		out.write(data.getBytes("UTF-8"));
		//法二:<meta>标签可以控制浏览器的行为
		out.write("<meta http-equiv='content-type' content='text/html;charset=UTF-8'>".getBytes());
		out.write(data.getBytes("UTF-8"));
		
		//向浏览器写数字:
		out.write((1+"").getBytes());
		
		//用PrintWriter来输出。
                PrintWriter outWriter = response.getWriter();
		//当用PrintWriter时,服务器会将response对象中的“大象”拿出来,默认用ISO8859码写给浏览器。
		//所以应设置,让服务器用TUF-8的编码写东西给浏览器
		response.setCharacterEncoding("UTF-8");;
		//另外也要通知浏览器:用UTF-8解析这个data:
               response.setHeader("Content-type", "text/html;charset=UTF-8");
                //将data写入response对象
		 outWriter.write(data);
		
	}

 利用 HttpServletResponse 定时刷新页面:

 

response.setHeader("refresh","3");
String data = new Random(1000000).nextInt() +"";
response.getWriter().write(data);

 

 

 

分享到:
评论

相关推荐

    httpservletRequest的学习笔记

    此外,HttpServletRequest还允许获取网络连接相关的信息: 1. `getRemoteAddr()`:返回发出请求的客户端的IP地址,这对于跟踪和日志记录非常有用。 2. `getRemoteHost()`:返回客户端的完全限定域名。 3. `...

    基于HttpServletRequest 相关常用方法的应用

    这个接口提供了许多方法来获取请求的相关信息,包括请求参数、请求头、请求路径等。下面将详细介绍`HttpServletRequest`的一些常用方法及其应用场景。 1. **获取请求URL和Referer** `HttpServletRequest` 提供了 `...

    JAVAWEB-09:HttpServletRequest对象&会话管理之Cookie

    `HttpServletRequest`对象是Servlet API的一部分,它允许服务器获取HTTP请求的相关信息。通过这个对象,开发者可以获取到客户端发送的请求行(包括方法、URL和协议版本)、请求头、请求参数以及请求体的数据。例如,...

    JavaWeb之装饰 HttpServletRequest 对象

    1. **HttpServletRequest接口**:了解其提供的各种方法,用于获取HTTP请求的相关信息。 2. **装饰模式**:理解装饰模式的概念,如何使用它来扩展已有对象的功能,以及如何通过装饰器链实现多层装饰。 3. **Servlet ...

    Java service层获取HttpServletRequest工具类的方法

    然而,有时Service层需要访问HttpServletRequest对象来获取请求信息,如参数、头信息或Session数据。这时,我们可以编写一个工具类来帮助Service层获取HttpServletRequest。本文将详细介绍如何创建这样一个工具类。 ...

    JavaWeb开发技术-HttpServletRequest对象.pptx

    HttpServletRequest 对象是 JavaWeb 开发中最常用的对象之一,它提供了一系列方法来获取 HTTP 请求的相关信息。在本文中,我们将详细介绍 HttpServletRequest 对象的使用方法和应用场景。 获取请求行信息的方法 在...

    HttpServletRequest对象

    1. **获取请求行的相关方法**: - `getMethod()`:返回HTTP请求的方法,如GET、POST、PUT、DELETE等。 - `getRequestURI()`:获取请求的统一资源标识符(URI)中资源名称的部分,不包括查询字符串。 - `get...

    HttpServletRequestX-0.1.zip

    在这个目录下,我们通常会找到项目源码、构建脚本、测试用例、文档和其他相关资源。开发者可以通过查看这些源码来学习如何实现对HttpServletRequest的扩展,以及如何处理和解析Accept头。 在实际应用中,使用...

    HttpServletRequest对象方法的用法小结

    通过HttpServletRequest对象的相关方法,可以获取客户机的信息,如: * getRequestURL():返回客户端发出请求时的完整URL。 * getRequestURI():返回请求行中的资源名部分。 * getQueryString():返回请求行中的...

    private void sendVideo(HttpServletRequest request, HttpServletResponse….pdf

    `HttpServletResponse`和`HttpServletRequest`是Java Servlet API的一部分,用于处理客户端请求和服务器响应。`getOutputStream()`方法用于获取用于发送响应的`ServletOutputStream`。 知识点七:数据传输过程 在...

    ParameterRequestUtils.java

    继承HttpServletRequestWrapper实现类,重新相关方法,实现自定义增加请求参数,通常是由于需要对参数进行特殊业务处理,然而HttpServletRequest的request.getPrameterMap是不允许修改的(被锁,可查看底层源码),...

    servlet-api

    这个压缩包文件"Servlet-api"包含了一系列与Servlet相关的类和接口,使得开发者能够与Web服务器进行交互,处理HTTP请求和响应。在Java Web开发中,`HttpServletRequest`和`HttpServletResponse`是两个至关重要的接口...

    HttpServletRequestWrapper应用(二):包装文件上传请求

    然而,如果我们需要在上传过程中做一些额外的操作,如验证文件类型、大小限制等,可以创建一个继承自`HttpServletRequestWrapper`的子类,并覆盖相关的方法。 以下是一个简单的例子,展示如何创建一个`...

    普通java类 获取Request

    然而,在实际项目中,有时候也需要在普通的Java类中处理与HTTP请求相关的逻辑,这就涉及到如何在这些类中获取到`HttpServletRequest`对象。 #### 使用ThreadLocal存储Request 一种常用的方法是利用`ThreadLocal`来...

    Struts2获取request的四种方式

    首先,我们需要从`ActionContext`中获取当前的上下文,然后通过上下文获取`HttpServletRequest`对象。以下是代码示例: ```java import com.opensymphony.xwork2.ActionSupport; import org.apache.struts2....

    struts2中获得request对象

    `ActionContext`是Struts2的核心组件之一,它封装了与当前请求相关的所有上下文信息,包括`HttpServletRequest`对象。我们可以通过以下方式获取: ```java ActionContext context = ActionContext.getContext();...

    java webservice服务器端获取request对象的三种方式

    ### Java WebService服务器端获取Request对象的三种方式 ...总结来说,通过上述介绍的三种方式,我们可以灵活地在Java WebService环境中获取客户端请求的相关信息,从而更好地实现业务逻辑的处理。

    servlet获取url相关参数

    当我们谈论“servlet获取URL相关参数”时,我们关注的是如何从HTTP请求中提取URL的各个部分,以便进行进一步的数据处理或业务逻辑操作。下面我们将详细讨论如何在Servlet中获取URL中的不同信息。 1. **URL结构**: ...

    Struts2在Action中获得Response对象的四种方法

    在Struts2框架中,Action类是业务逻辑的核心,它负责处理用户请求并返回相应的结果。然而,与Struts1.x不同,Struts2的Action类...同时,使用RequestAware拦截器可以获取到更多的请求相关数据,但需要额外的类型转换。

Global site tag (gtag.js) - Google Analytics