昨天学习了Servlet的一些知识。将这些知识串起来写了一个小代码,加深映象。
1.题目要求如下:
在web.xml文件中设置两个WEB应用的初始化参数,user,password。定义一个login.html,里面定义两个请求字段:user,password.发送请求到loginServlet。在创建一个LoginServlet,在其中获取请求的user,password。比对其和web.xml文件中定义的请求参数是否一致。若一致,相应hello:xxx,若不一致,响应Sorry:xxx (xxx为user)。
2、我的代码:(发现自己写,还是问题很多!所以实践才是硬道理。)
首先建个login.html:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="loginServlet" method="Post">
user:<input type="text" name="inputuser"/>
password:<input type="password" name="inputpassword"/>
<input type="submit" value="Sumbit"/>
</form>
</body>
</html>
web.xml:
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID" version="3.0">
<!-- web应用 -->
<context-param>
<param-name>user</param-name>
<param-value>root</param-value>
</context-param>
<context-param>
<param-name>password</param-name>
<param-value>12345</param-value>
</context-param>
<servlet>
<servlet-name>ServletTest</servlet-name>
<servlet-class>com.servletTest.yr.LoginServlet</servlet-class>
<init-param>
<param-name>user</param-name>
<param-value>root</param-value>
</init-param>
<init-param>
<param-name>password</param-name>
<param-value>123456</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>ServletTest</servlet-name>
<url-pattern>/loginServlet</url-pattern>
</servlet-mapping>
</web-app>
LoginServlet.java:
package com.servletTest.yr;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class LoginServlet implements Servlet{
public String user=null;
public String password=null;
@Override
public void destroy() {
}
@Override
public ServletConfig getServletConfig() {
return null;
}
@Override
public String getServletInfo() {
return null;
}
@Override
public void init(ServletConfig servletConfig) throws ServletException {
System.out.println("init.....");
// user=servletConfig.getInitParameter("user") ;//获取初始化的user
// password=servletConfig.getInitParameter("password"); //获取初始化的password
// System.out.println("init:"+user+":"+password);
ServletContext servletContext= servletConfig.getServletContext();
user=servletContext.getInitParameter("user");
password=servletContext.getInitParameter("password");
System.out.println("init Web 应用:"+user+":"+password);
}
@Override
public void service(ServletRequest request, ServletResponse response)
throws ServletException, IOException {
System.out.println("service....");
String user1=request.getParameter("inputuser");
String password1=request.getParameter("inputpassword");
System.out.println("in"+user1+":"+password1);
PrintWriter out=response.getWriter();
System.out.println("开始比较。。。。");
System.out.println("##"+user);
System.out.println("##"+password);
System.out.println("&&"+user1);
System.out.println("&&"+password1);
if(user1==null){
out.print("there is null");
}
if(user1.equals(user) && password1.equals(password)){
out.print("Hello"+user);
}else{
out.print("sorry:"+user);
}
}
public LoginServlet(){
System.out.println("constroction without paramter.....");
}
// public LoginServlet(String user, String password){
//
// System.out.println("constroction.....");
// this.user=user;
// this.password=password;
//
// }
}
之前没有认真看题意,是要求在WEB应用设置初始化参数。所以这里去参数的时候,要用servletContext来获取。
《不骄不躁,徐徐前进》