request案例
request主要是面向客户端的请求,这个比response简单,
request的常用方法:
案例一、request案例一 获得客户机信息
request第一部分 获取客户机信息
url和uri的区别?
url是uri的一个子集。
uri可以制定任何路径。
url必须是完整的路径。
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ResponseServlet4 extends HttpServlet
{
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
//测试一些客户机数据
System.out.println("uri:"+request.getRequestURI());
System.out.println("url:"+request.getRequestURL());//获得完整的url
System.out.println("querystr:"+request.getRequestURL());//获得请求行中的参数部分
response.setContentType("text/html;charset=utf-8");//编码方式
PrintWriter out=response.getWriter();
out.println("您的ip是:"+request.getRemoteAddr());//得到客户机的ip
out.println("您的客户机完整名是:"+request.getRemoteHost());
out.println("您的请求方式是:"+request.getMethod());
// 获得当前用户访问的资源
String uri=request.getRequestURI();// /myday06/request4
String contextpath=request.getContextPath();// /myday06
out.println("你正在访问的是:"+uri.substring(contextpath.length()));//这句的意思是去掉前面的信息,只保留后面的资源名称
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
doGet(request, response);
}
}
案例二:获取头信息,防止盗链
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ResponseServlet5 extends HttpServlet
{
//防止盗链
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
response.setContentType("text/html;charset=utf-8");
//分析原理,头信息referer,得知该次请求来源,判断是否为盗链
String referer=request.getHeader("referer");
if(referer==null||!referer.startsWith("http://localhost"))
{
response.getWriter().println("<h1>盗链资源,可耻!</h1>");
//如果我直接访问我这个servlet,那么一定是盗链,因为referer为null
}else{
response.getWriter().println("<h1>欢迎访问</h1>");
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
doGet(request, response);
}
}
案例三、处理中文乱码
案例三、防止中文乱码
可以提交请求的两种方式
1.使用<form>
执行form的submit,提交form表单。
常用表单元素
<input type=[text | password | radio | checkbox | submit ]>
<select>…<option>
<textarea>
2.使用URL链接
<a href="http://www.163.com?name=abc&password=123"> 点击链接 </a>
这样通过?可以提交参数,&用来分隔多个参数,
效果和<form>的GET方式相同
处理中文乱码
数据非空校验
处理中文乱码
post乱码问题:
setCharacterEncoding //放在getParameter前才有效
get乱码问题:
new String(str.getBytes(“ISO-8859-1”),”utf-8”)
设置tomcat Connector URIEncoding=“utf-8”
- 大小: 61.6 KB
分享到:
相关推荐
在"09_Java Web——Request&Response案例"这个主题中,我们聚焦于HTTP请求和响应这两个核心概念,它们是Web应用中客户端与服务器交互的基础。下面将详细阐述相关知识点。 1. **HTTP协议**:超文本传输协议(HTTP)...
JSP提供了九个内置对象,包括请求(request)、响应(response)、会话(session)、应用程序(application)、页面上下文(pageContext)、页面(page)、例外(exception)、输出流(out)和配置(config),它们...
《JSP Web应用开发案例教程》是侯玉香教授撰写的一本教材,旨在帮助读者深入理解和掌握JSP(JavaServer Pages)技术在Web应用开发中的实际运用。这本教程通过丰富的案例,详细讲解了JSP的基本概念、语法特性以及如何...
本案例旨在深入理解并掌握`request`对象的各种常用方法及其应用场景。以下将详细介绍这些方法的功能及其用法。 1. `request.getProtocol()`:此方法用于获取客户端发送请求时使用的通信协议,例如"HTTP/1.1",这有...
《JSP Web开发案例教程》是一本专注于教授JSP(JavaServer Pages)技术在Web开发中的实际应用的教材。此教程结合了丰富的课件、课堂演示案例和课后题答案,旨在提供一个全面的学习资源,帮助学生和开发者深入理解JSP...
在这个18课堂案例中,我们探讨了如何使用`HttpServletRequest`对象,也就是`request`对象,来获取简单的表单数据。以下是对这个案例的详细解释: 首先,我们需要创建一个HTML表单,这个表单通常位于Web项目的`Web...
本案例“过滤器应用案例”着重讲解了如何利用过滤器来实现用户登录状态的监控以及权限控制。 过滤器在JAVA2EE中的作用: 1. **数据转换**:过滤器可以对请求或响应的数据进行转换,如编码转换,字符集调整等。 2. *...
"使用JSP开发Web应用系统理论贯穿案例"这个主题涵盖了从基础概念到实际开发流程的全面知识体系,旨在帮助开发者理解并掌握JSP的精髓。 首先,我们要了解JSP的基础。JSP是由Sun Microsystems(现已被Oracle收购)...
- **JSP 标签和内置对象**:讲解 JSP 中常用的标签和内置对象,如 out、request、response 等,这些是构建动态网页的基础。 - **Web 程序的实现过程**:详细介绍一个完整的 Web 应用是如何从需求分析到设计、编码、...
本主题将深入探讨"C#网络应用案例导航"中的核心概念和技术,帮助开发者掌握C#进行网络编程的能力。 1. **网络编程基础** - C#中的`System.Net`命名空间提供了进行网络通信所需的基础类,如`Socket`、`TcpClient`、...
本篇将深入探讨“JSP网络开发实用工程案例 1-5 案例”中的关键知识点,帮助读者理解和掌握JSP的实际应用。 首先,我们要了解JSP的基本结构。一个JSP页面由静态内容(如HTML、CSS和JavaScript)与动态内容(Java代码...
通过`request`对象,我们可以获取客户端提交的数据或进行重定向和转发操作。 **示例:** - 设置字符编码:`request.setCharacterEncoding("GBK")`,用于解决POST请求时中文乱码问题。 - 获取参数:`request....
在这个"SpringCloud Gateway应用案例"中,我们将会深入探讨如何使用和配置这个强大的工具。 首先,Spring Cloud Gateway作为API网关,它的主要职责包括路由转发、请求过滤、限流、熔断等。它通过定义Route(路由)...
本资源“C#网络编程及应用案例一”针对初学者提供了宝贵的实践指导,旨在帮助理解C#中的网络编程概念,并通过实际案例来加深理解。 在C#中,网络编程主要涉及System.Net命名空间,它包含了处理网络连接、HTTP请求、...
#### 四、实际应用案例 假设有一个Web应用程序,名为`myApp`,部署在服务器上,其根目录下有一个配置文件`config.properties`。开发者需要读取该配置文件以获取某些参数。在这种情况下,可以使用`getRealPath()`...
【Java Web程序设计】在开发Web应用程序时,理解并熟练运用`Request`、`Response`以及`Session`对象是至关重要的。这三个对象是Java Servlet API的核心组成部分,它们在处理HTTP请求和响应时扮演着关键角色。 `...
第二个案例聚焦于`request`对象,这是另一个重要的JSP内置对象,代表了来自客户端的HTTP请求。`HttpServletRequest`接口提供了`getParameter()`方法,用于获取HTML表单中的参数值。在案例中,我们创建了一个简单的...
在Java Web应用开发中,编码转换是一个常见的需求,特别是在处理多国语言或者不同系统间数据交换时。本案例主要介绍了如何使用JavaBean来实现GBK和ISO-8859-1之间的编码转换,这对于理解字符编码原理以及解决乱码...
### JSP内置对象request、response、out的应用 在Java Server Pages (JSP)技术中,内置对象是开发者经常使用的工具之一。这些内置对象为开发者提供了处理客户端请求、响应和服务端输出的强大能力。本文将深入探讨三...
【JSP内置对象的应用范例】 在JavaServer Pages (JSP) 技术中,内置对象是预定义的对象,可以直接在JSP页面中使用,无需显式声明或实例化。这些内置对象大大简化了开发过程,提高了效率。本示例以一个登录系统为例,...