Java Web学习笔记3

今天做了一个实验:Servlet访问WEB-INF目录下的文件notice.html 

最后始终不能出现预期的效果,我猜想可能是使用了Tomcat 8版本的原因吧,暂时放下,等以后知识丰富了,再来解决它.

目前的效果如下:

 

代码及配置如下:

package com.helloxr.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Enumeration;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/*
 * Servlet访问WEB-INF目录下的文件notice.html
 */
public class InitParamServlet extends HttpServlet {

    
    private static final long serialVersionUID = 6272811112212L;

    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        
        request.setCharacterEncoding("UTF-8");  // 设置request编码方式
        response.setCharacterEncoding("UTF-8"); // 设置response编码方式
        
        response.setContentType("text/html");  // 设置类型为HTML类型
        PrintWriter out = response.getWriter();
        out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
        out.println("<HTML>");
        out.println("  <HEAD><TITLE>请登录后查看 Notice 文件</TITLE>");
        out.println("  <style>body,td,div {font-size:12px; }</style>");
        out.println("  </HEAD>");
        out.println("  <BODY>");
        out.println("<form action='" + request.getRequestURI() + "' method='post'>");
        out.println("账号: <input type='text' name='username' style='width:200px; '> <br/><br/>");
        out.println("密码: <input type='password' name='password' style='width:200px; '> <br/><br/>");
        out.println("<input type='submit' value='  登录  '>");
        out.println("</form>");
        out.println("  </BODY>");
        out.println("</HTML>");
        out.flush();
        out.close();
    }

    
    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        String username = request.getParameter("username"); // 提交的usernmae参数
        String password = request.getParameter("password"); // 提交的password参数
        Enumeration<String> params = this.getInitParameterNames(); // 所有的初始化参数名称
        while(params.hasMoreElements()){
            String usernameParam = (String)params.nextElement();  // 参数名,即用户名
            String passnameParam = getInitParameter(usernameParam); // 参数值,即密码
            
            if(usernameParam.equals(username) && passnameParam.equals(password) ){ // 如果用户名及密码都匹配则显示
                request.getRequestDispatcher("/WEB-INF/notice.html").forward(request,response);
                return;
            }
        }
        this.doGet(request, response); // username, password不匹配,显示登录页面
    }

}

 

web.xml文件相关内容:

<servlet>
    <servlet-name>InitParamServlet</servlet-name>
    <servlet-class>com.helloxr.servlet.InitParamServlet</servlet-class>
    <init-param>
        <param-name>helloxr</param-name>
        <param-value>password</param-value>
    </init-param>
    <init-param>
        <param-name>admin</param-name>
        <param-value>admin</param-value>
    </init-param>
    <init-param>
        <param-name>babyface</param-name>
        <param-value>babyface</param-value>
    </init-param>
</servlet>
<servlet-mapping>
    <servlet-name>InitParamServlet</servlet-name>
    <url-pattern>/servlet/InitParamServlet</url-pattern>
  </servlet-mapping>

 

 

 

posted @ 2016-12-23 23:15  xiaorong1115  阅读(150)  评论(0编辑  收藏  举报