学期第3周周记

博客主要介绍了Request的使用,包括获取请求基本信息、防盗链、解决请求乱码、设置和获取域属性;还阐述了Response的相关内容,如输出数据和解决乱码。此外,展示了数据库查询代码,并提及写ajax判断数据时使用next函数而非equals函数,避免服务请求失败。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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,时间关系也没去深究。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值