Request:
1.获取请求的基本信息
1>获取请求的url和uri
2>获取url后面的请求参数部分的字符串
3>获取请求方式
4>获取主机名,IP地址
5>获取 Contexpath
2.通过 Referer 请求头实现防盗链
Referer请求头的值表示从哪个网页上的链接访问到当前链接
盗链: 其他站点通过超链接链接到自己的站点,从而实现资源的盗窃称为盗链.
@WebServlet("/NewsServlet")
3.解决请求乱码问题:
request.setCharacterEncoding(“Utf-8”);
4.设置和获取域属性
Response
1.response
ServletResponse – 通用的response提供了一个响应应该具有最基本的属性和方法
|
|-HttpServletResponse – 在ServletResponse的基础上针对于HTTP协议增加了很多强化的属性和方法
2.输出数据
1)getOutputStream字节输出流
2)getWriter字符输出流
response.getWriter().write(“北京”);
3)解决乱码
1> 通知服务器发送数据时使用utf-8编码
response.setCharacterEncoding(“utf-8”);
2> 通知浏览器接受数据时使用utf-8解码
response.setHeader(“Content-Type”, “text/html;charset=utf-8”);
3> Notice:
a. response对象中对Content-Type响应头进行了封装,可以使用一下代码代替 2>
response.setContentType(“text/html;charset=utf-8”);
b. 如果设置了Content-Type,服务器会自动的设置 characterEncoding,因此解决乱码只需要设置Content-Type响应头一行代码就可以了,但是为了代码的可读性更高,一般还是建议同时设置 characterEncoding 和 Content-Type.
try {
Class.forName(className);//通过forName方法加载驱动
} catch (ClassNotFoundException e) {
// 用来捕获异常
System.out.println(“加载驱动失败!”);
e.printStackTrace();
}
Connection conn = DriverManager.getConnection(
“jdbc:mysql://localhost:3306/taobaodb?useUnicode=false&characterEncoding=utf8”,
“root”,“GYwhxhn520…”);
String user=request.getParameter(“user”);
String sql = “select * from user_info where username=’”+user+"’";
Statement ps = conn.createStatement();
ResultSet rs = ps.executeQuery(sql);
if(rs.next()){
out.println(“对不起,此用户已经注册!”);
}else{
out.println(“恭喜,此用户可以注册!”);
}
ps.close();
rs.close();
conn.close();
%>
我在写ajax判断数据是否存在于数据库中时用next函数,之前用equals函数造成ajax服务请求失败,没找出原因,请教其他人,得到的信息是不能使用equals,时间关系也没去深究。