JavaWeb_response功能

功能:设置响应消息
1.设置响应行
(1).格式:HTTP/1.1 200 OK
(2).设置状态码:setStatus(int sc)
2.设置响应头
setHeader(String name, String value)
3.设置响应体
使用步骤:
(1).获取输出流
字符输出流:PrintWriter getWriter()
字节输出流:ServletOutputStream getOutputStream()
(2).使用输出流,将数据输出到客户端浏览器
案例:
1.完成重定向
*重定向:资源跳转的方式
*代码实现(掌握第二种)
访问responsDemo1,会自动跳转到responsDemo2
第一种方式:
//1.设置状态码302
response.setStatus(302);
//2.设置响应头location
response.setHeader(“localhost”,"/day15/responseDemo2")

   第二种方式:
    //简单的重定向方法
    response.sentRedirect("/day5/responseDemo2");
  *重定向的特点:
   1.地址栏发生变化
   2.重定向可以访问其他站点(服务器)的资源
   3.重定向是两次请求,不能使用request对象来共享数据
  *转发的特点:
   1.地址栏路径不变
   2.只能访问当前服务器下的资源
   3.转发是一次请求,可以使用request对象来共享数据
  forword(转发) 和 redirect(重定向) 区别
  *路径写法:
   路径分类
    相对路径:通过相对路径不可以确定唯一资源 不以/开头,以.开头  如:./index.html。
     规则:找到当前资源和目标资源之间的相对位置关系
     ./:当前目录
     ../:后退一级目录
     
    绝对路径:通过绝对路径可以确定唯一资源  以/开头  如:http://localhost/day15/responseDemo2
     规则:判断定义的路径是给谁用的?判断请求将来是从哪发出的
      *给客户端浏览器使用:需要加虚拟目录(项目的访问路径)
       *建议使用虚拟目录动态获取:request.getContextPath()
       *如:超链接路径,form表单路径,重定向
      *给服务器使用,不需要加虚拟目录
       在servlet中(如:跳转)

2.服务器输出字符数据到浏览器(文本)
*步骤:
doPost(HttpServletRequest request,HttpServletResponse response){
//注意乱码问题。
0.获取流之前,设置流的默认编码,ISO-8859-1 设置为 GBK
response.setCharacterEncoding(“GBK”);
0.告诉浏览器,服务器发送的消息体数据的编码,建议浏览器使用该编码解码
response.setHeader(“content-type”,“text/html;charset=GBK”)
以上两个0步骤可以用一种简单的方式替换
1. response.setContentType("“text/html;charset=GBK”")
2.获取字符输出流
PrintWriter pw = response.getWriter();
3.输出数据(响应的消息体)//这个消息体可被浏览器解析 所以也可以写HTML标签,浏览器会自动解析这些标签然后展示出相对应的样式
pw.write(“

hello,response

”);
}

3.服务器输出字节数据到浏览器(图片等)
*步骤:
doPost(HttpServletRequest request,HttpServletResponse response){
response.setCharacterEncoding(“GBK”);
//1.获取字节输出流
ServletOutputStream sos = response.getOutputStream()
//2.输出数据
sos.write(“hello,你好”.getBytes())
}

好的,下面是一个简单的JavaWeb登录功能实现代码示例: ```java // 导入必要的包 import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; public class LoginServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, java.io.IOException { // 设置响应内容类型 response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("<html><head><title>Login</title></head><body>"); out.println("<h1>JavaWeb登录功能实现</h1>"); // 获取表单参数 String username = request.getParameter("username"); String password = request.getParameter("password"); // 检查登录信息是否正确 if (username.equals("admin") && password.equals("admin")) { // 创建会话并将用户名存储在会话中 HttpSession session = request.getSession(true); session.setAttribute("username", username); // 重定向到成功页面 response.sendRedirect("success.jsp"); } else { // 登录失败 out.println("<p>用户名或密码错误,请重新输入!</p>"); out.println("<a href='login.jsp'>返回登录页面</a>"); } out.println("</body></html>"); out.close(); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, java.io.IOException { doGet(request, response); } } ``` 在上述代码中,我们使用了 `doGet` 方法来处理 GET 请求和 `doPost` 方法来处理 POST 请求。当用户提交登录表单时,我们获取表单中的用户名和密码,并在后台验证。如果登录信息正确,我们创建一个会话并将用户名存储在会话中,然后重定向到成功页面。如果登录信息不正确,则返回登录页面并显示错误消息。 这只是一个简单的示例,实际的登录功能可能需要更多的验证和安全措施。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值