Servlet编写登陆页面简单实践

http://blog.csdn.net/jiuqiyuliang/article/details/36424981

搭建Web项目开发环境


      然后,我们可以开始使用MyEclipse搭建java Web项目开发环境,只需要跟我一步步操作即可:

1、新建MyEclipse的工作空间

                       Servlet编写登陆页面简单实践_第1张图片

2、选择工作空间的路径

                      Servlet编写登陆页面简单实践_第2张图片

3、建立我们的Web项目

                      Servlet编写登陆页面简单实践_第3张图片

4、输入Web项目的名称,我们使用的是J2EE1.4,Finish之后一定要选择No,如果选择Y的话,MyEclipse就能使用jdk1.5的环境了。

                      Servlet编写登陆页面简单实践_第4张图片

                    Servlet编写登陆页面简单实践_第5张图片

5、此时我们的Web项目基本上就算完成了,下面这幅图,我们大家详细的介绍一下它的目录。

                   Servlet编写登陆页面简单实践_第6张图片



编写一个现实登陆的Servlet,并部署访问


1、我们先写一个简单的HTML,可以在WebRoot新建,也可以复制一个写好的HTML,我们用post提交方式,当然也可以用get提交,大家可以自己尝试一下。

[html]  view plain  copy
  1. >  
  2. <html xmlns="http://www.w3.org/1999/xhtml">  
  3.     <head>  
  4.     <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />  
  5.         <title>登录title>  
  6.     head>  
  7.     <body>  
  8.           
  9.         <form action="http://localhost:8080/loginServlet/LoginServlet" method="post">  
  10.             用户:<input type="text" name="username" /><br/>  
  11.             密码:<input type="password" name="password" /><br/>  
  12.             <input type="submit" value="登录" />  
  13.               
  14.         form>  
  15.     body>  
  16. html>  

2、完成Servlet,在Web项目的src中右键新建一个类LoginServlet,输入下面代码即可。

[java]  view plain  copy
  1. //引入所需要的包  
  2. import java.io.*;  
  3. import javax.servlet.*;  
  4. import javax.servlet.http.*;  
  5.   
  6. public class LoginServlet extends HttpServlet {  
  7.     //重写doGet方法  
  8.     public void doGet(HttpServletRequest request,  
  9.             HttpServletResponse response)  
  10.      throws ServletException,  
  11.             IOException {  
  12.         String username = request.getParameter("username");     
  13.         String password = request.getParameter("password");        
  14.           
  15.         //服务器端打印信息  
  16.         //System.out.println("username=" + username);  
  17.         //System.out.println("password=" + password);  
  18.         //设置编码格式  
  19.         response.setContentType("text/html;charset=GB18030");  
  20.           
  21.         //返回html页面  
  22.         response.getWriter().println("");  
  23.         response.getWriter().println("");     
  24.         response.getWriter().println("登录信息");      
  25.         response.getWriter().println("");    
  26.         response.getWriter().println("");     
  27.         response.getWriter().println("欢迎【" + username + "】用户登录成功!!!");    
  28.         response.getWriter().println("");    
  29.         response.getWriter().println("");  
  30.         }                     
  31.     //重写doPost方法  
  32.     public void doPost(HttpServletRequest request,  
  33.             HttpServletResponse response)  
  34.     throws ServletException,  
  35.             IOException {  
  36.         doGet(request, response);                     
  37.     }       
  38. }  

3、在WebRoot下的WEB-INF的web.xml,部署我们的Servlet,启动服务器。


[html]  view plain  copy
  1. xml version="1.0" encoding="UTF-8"?>  
  2. <web-app version="2.4"   
  3.     xmlns="http://java.sun.com/xml/ns/j2ee"   
  4.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
  5.     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee   
  6.     http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">  
  7.       
  8.     <servlet>  
  9.         <servlet-name>MyServletservlet-name>  
  10.         <servlet-class>LoginServletservlet-class>  
  11.     servlet>  
  12.   
  13.     <servlet-mapping>  
  14.         <servlet-name>MyServletservlet-name>  
  15.             <url-pattern>/LoginServleturl-pattern>  
  16.     servlet-mapping>  
  17. web-app>  

4、一定要启动服务器,之后在浏览器中输入你的URL,此时我们就可以调用Servlet了,我们看一下运行结果。

             Servlet编写登陆页面简单实践_第7张图片

             Servlet编写登陆页面简单实践_第8张图片

       实

Servlet部署

       

       客户端通过URL地址访问web服务器中的资源,所以若想访问Servlet必须要把servlet程序映射到一个URL地址上,在web.xml文件中使用元素和元素完成,如上面的实例。

        *用于注册Servlet,包含了两个子元素,分别用于设置servlet的名称以及servlet的类名。

        *用于映射上面中的对外访问路径,同样包含两个元素,分别用于设置servlet的名称以及servlet的对外访问路径。

        在servlet映射到URL有两种格式:

        1.“*.扩展名”

        2.以正斜杠(/)开头并以“/*”结尾。

        servlet对url的匹配规则以及路径问题,大家可以上网查,有很多相关的资料,例如:http://blog.csdn.net/xh16319/article/details/8014107

             

4、Web服务器调用Servlet过程(Servlet生命周期)

     

      servlet程序是由web服务器调用,web服务器实现了对servlet生命周期的管理。servlet的生命周期分为四步:

          1)实例化以及加载servlet,new的过程。

          2)初始化init(ServletConfig)。

          3)处理请求,调用servlet的service,doget,dopost方法将Request和Response,作为参数传递。

          4)退出服务,调用destory方法释放资源。

          Servlet编写登陆页面简单实践_第9张图片


 注意:

         1、servlet只实例化一次。感觉有点单例模式的意思,大家可以研究一下Tomcat的实现原理。

         2、init方法也只执行一次。servlet实例只创建一次,所以init初始化只调用一次。


5、Servlet线程安全问题


       当多个客户端并发访问同一个Servlet时,web服务器会为每一个客户端的访问请求创建一个线程,并在这个线程上调用service方法,因此,service方法内如果访问了同一个资源的话,就有可能引发线程安全问题。大家重点理解下面两句即可:
(1) Servlet是单实例多线程的,如果存在可以修改的成员变量将会出现线程安全问题。
(2) 使用Servlet最好保证Servlet是无状态的,也就是没有可以修改的成员变量。



你可能感兴趣的:(Web)