JavaWeb同步学习笔记之十、JavaWeb_ServletResponse
程序员文章站
2022-05-08 13:17:01
...
JavaWeb_ServletResponse
ServletResponse
ServletResponse:封装了响应信息,如果想给用户数目响应,具体可以使用该接口的方法实现
常用的方法
- getWriter() : 返回 PrintWriter 对象。调用该对象的 print() 方法,将把 print() 中的参数直接打印到客户的浏览器上。
PrintWriter out = resonse.getWriter();
out.println("helloworld...");
- setContentType(java.lang.String type) : 设置响应的内容类型
/*
其中,参数值可以参照Tomcat相关路径下的web.xml文件。
具体路径为:根目录\conf\web.xml
例如:
D:\Eclipse\Eclipse_Plugins\Tomcat\apache-tomcat-9.0.2\confweb.xml
建议在浏览器中运行,当执行代码时,会自动下载一个word文档,在Eclipse中不行。
*/
response.setContentType("application/msword");
PrintWriter out = resonse.getWriter();
out.println("helloworld...");
HttpServletResponse
HttpServletResponse 是 ServletResponse的子接口,它的作用和 HttpServletRequest 相对应的,针对于 HTTP 请求增加了 HTTP 请求的方法。其中,void sendRedirect(String location) : 请求的重定向。此方法非常重要,后续的内容会具体了解,此方法为 HttpServletResponse 中定义。
练习
在 web.xml 文件中设置两个 WEB 应用的初始化参数,user,password。定义一个 login.html,里边定义两个请求字段: user,password. 发送请求到 loginServlet在创建一个 LoginServlet3,在其中获取请求的 user, password。比对其和 web.xml 文件中定义的请求参数是否一致。若一致,响应 Hello:xxx,若不一致,响应 Sorry: xxx xxx 为 user。
第一步:配置当前 WEB 应用的初始化参数
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
<!-- 配置当前 WEB 应用的初始化参数 -->
<context-param>
<param-name>user</param-name>
<param-value>atguigu</param-value>
</context-param>
<context-param>
<param-name>password</param-name>
<param-value>123567</param-value>
</context-param>
</web-app>
第二步:创建 HTML :login.html
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="loginServlet" method="post">
user: <input type="text" name="username"/>
password: <input type="password" name="password"/>
<input type="submit" value="Submit"/>
</form>
</body>
</html>
第三步:创建并配置 Servlet
private ServletConfig servletConfig;
@Override
public void init(ServletConfig servletConfig) throws ServletException {
this.servletConfig = servletConfig;
}
@Override
//重写 service 方法
public void service(ServletRequest request, ServletResponse response)
throws ServletException, IOException {
//1. 获取请求参数:username,password
String username = request.getParameter("username");
String password = request.getParameter("password");
//2.获取当前 WEB 应用的初始化参数:user,password
ServletContext servletContext = servletConfig.getServletContext();
String initUser = servletContext.getInitParameter("user");
String initPassword = servletContext.getInitParameter("password");
PrintWriter out = response.getWriter();
//3. 比对
//4. 打印响应字符串
if(initUser.equals(username) && initPassword.equals(password)){
out.print("Hello: " + username);
}else{
out.print("Sorry: " + username);
}
}
<!-- 配置Servlet -->
<servlet>
<servlet-name>loginServlet</servlet-name>
<servlet-class>com.xs.javaweb.LoginServlet3</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>loginServlet</servlet-name>
<url-pattern>/loginServlet</url-pattern>
</servlet-mapping>
上一篇: Javaweb-xml基础1(学习笔记)
下一篇: JavaScript 日期格式