package javacommon.util;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.URL;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.util.Assert;
public class ServletUtil {
/**
* 取得客户端真实IP
* @param request
* @return
*/
public static String getRemortIP(HttpServletRequest request) {
if (request.getHeader("x-forwarded-for") == null) {
return request.getRemoteAddr();
}
return request.getHeader("x-forwarded-for");
}
public String getIpAddr(HttpServletRequest request) {
String ip = request.getHeader("x-forwarded-for");
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("Proxy-Client-IP");
}
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("WL-Proxy-Client-IP");
}
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getRemoteAddr();
}
return ip;
}
/**
* 打开URL返回状态码
* @param url
* @return
*/
public static int openUrl(String urlstr)throws Exception{
URL url = new URL(urlstr);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
return conn.getResponseCode();
}
/**
* 直接输出文本
* @param response
* @param text
*/
public static void rendText(HttpServletResponse response,String text){
try {
response.setCharacterEncoding("utf-8");
// response.s
PrintWriter print=response.getWriter();
print.print(text);
print.flush();
print.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 直接输出js内容
* @param response
* @param text
*/
public static void printJavaScript(HttpServletResponse response,String text){
StringBuffer sb = new StringBuffer("<script>");
sb.append(text);
sb.append("</script>");
rendText(response,sb.toString());
}
/**
* 从request中取得指定参数的值
* @param request HttpServletRequest
* @param name 参数名
* @param defaultValue 默认值
* @return int
*/
public static int getParameter(HttpServletRequest request,String name,int defaultValue){
Assert.notNull(request, "Request must not be null");
String v = request.getParameter(name);
if(v!=null && !v.equals("")){
try{
defaultValue = Integer.parseInt(v);
}catch(NumberFormatException e){
}
}
return defaultValue;
}
/**
* 从request中取得指定参数的值
* @param request HttpServletRequest
* @param name 参数名
* @param defaultValue 默认值
* @return long
*/
public static long getParameter(HttpServletRequest request,String name,long defaultValue){
Assert.notNull(request, "Request must not be null");
String v = request.getParameter(name);
if(v!=null && !v.equals("")){
try{
defaultValue = Long.parseLong(v);
}catch(NumberFormatException e){
}
}
return defaultValue;
}
/**
* 从request中取得指定参数的值
* @param request HttpServletRequest
* @param name 参数名
* @param defaultValue 默认值
* @return string
*/
public static String getParameter(HttpServletRequest request,String name,String defaultValue){
Assert.notNull(request, "Request must not be null");
try {
if(request.getParameter(name)==null){
return defaultValue;
}
String v = request.getParameter(name);
if(v!=null && !v.equals("")){
return v;
}
return defaultValue;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
return defaultValue;
}
}
}
分享到:
相关推荐
2. 在服务器端,接收来自客户端的页码和每页条数参数,构造对应的SQL查询。 3. 执行查询,获取当前页的数据,并计算总页数(总记录数除以每页条数,向上取整)。 4. 将结果集转换为业务对象(BO)或数据传输对象...
- **request**:表示 HttpServletRequest 对象,用于获取客户端发送的请求信息。 - **response**:表示 HttpServletResponse 对象,用于设置和发送响应信息给客户端。 - **out**:JspWriter 对象,用于向客户端输出...
- `getParameter()`方法:用于获取HTTP请求参数,如果参数名是字符串形式,应该使用双引号包围,如`request.getParameter("name")`来准确获取文本框输入。 3. **HttpServletResponse对象**: - `sendRedirect()`...
- **request对象**:获取客户端请求的信息。 - **response对象**:用于向客户端发送响应。 - **session对象**:管理用户会话状态。 - **application对象**:管理整个Web应用的全局状态。 - **pageContext对象**...
- **5.7.2 request对象**:获取客户端请求信息。 - **5.7.3 response对象**:设置响应头信息,向客户端发送响应。 - **5.7.4 session对象**:管理客户端会话。 - **5.7.5 application对象**:管理Web应用范围内的...
### J2EE攻略(经典) #### 一、EJB基础知识与运行环境配置 **1.1 什么是Enterprise JavaBeans (EJB)** EJB(Enterprise JavaBeans)是一种Java技术规范,用于开发分布式企业级应用程序。它提供了一种将业务逻辑...
10. JSP 标准标记库是一个实现(Web)应用程序中常用功能的定制标记库集。JSP 标准标记库提供了一组常用的标记,例如输出、循环、条件等,可以简化 JSP 页面的开发。 二、单项选择题 1. 表单数据的提交方法有两种,...
MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以使用简单的XML或注解进行配置和原始映射,将接口和Java的POJOs(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。 将这四...
- **请求对象**:通过`HttpServletRequest`对象获取请求参数、请求头等信息。 - **响应对象**:使用`HttpServletResponse`对象设置响应状态码、响应头和响应体等。 - **转发与重定向**:使用`RequestDispatcher`接口...
- **redirect**:重定向,客户端会收到一个HTTP响应,告诉它去另一个位置获取资源,因此客户端会发送一个新的HTTP请求到新的URL,这会导致两次HTTP请求,且第二次请求会丢失第一次的属性和参数。 #### 5. 什么是Web...
在JSP中,`request`对象是`HttpServletRequest`类型的实例,它是Servlet API的一部分,提供了获取客户端发送到服务器的所有信息的方法。例如,`getParameter()`用于获取请求参数,`getHeader()`用于获取请求头,`...
`PreparedStatement`是`Statement`的子类,它可以预编译SQL语句,并允许设置参数值,提高SQL执行效率和安全性。 **3.3 JDBC事务** JDBC支持事务处理,通过`Connection`对象的`setAutoCommit(false)`方法可以开启...
- `request`:获取客户端请求信息。 - `response`:向客户端发送响应。 - `session`:管理用户会话。 - `application`:管理应用程序范围内的信息。 - `pageContext`:提供对所有其他内置对象的访问。 7. **...
Action的结果类型有几种,如`Dispatcher`(服务器转发,显示Action地址,适用于同个Action间的共享),`Redirect`(客户端重定向,显示JSP地址,需要手动传递参数),`Chain`(类似于Dispatcher,但不共享值栈),...
MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以使用简单的XML或注解进行配置和原始映射,将接口和Java的POJOs(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。在Spring...
- **J2EE体系架构概述**:J2EE体系架构由多个相互协作的组件组成,包括但不限于EJB容器、应用程序客户端、Web服务器和应用服务器等。 - **J2EE主要技术**:这些技术主要包括Servlets、JavaServer Pages (JSP)、...
### JSP基础教程:j2ee初学者指南 #### JSP概念回顾与解析 JavaServer Pages(简称JSP)是一种动态网页技术标准,它在传统的HTML基础上嵌入了Java代码,使得网页具备了动态生成的能力。JSP由Sun Microsystems公司...
### 笔试型_J2EE初级技术面试题目详解 #### 1. Classpath与path的使用 Classpath和path是Java开发中常见的环境变量,它们分别用于指定Java编译器和运行时查找类库和可执行文件的路径。Classpath主要用于指向.class...