Servlet-登录Demo

简介:

      Servlet是一个Java编写的程序,是基于Http协议的,在服务端运行的(如Tomcat)是按照Servlet规范编写的一个java类。


作用:

       Servlet是服务器端用来解析浏览器发送的http协议的。如下图:

    


       浏览器页面上的信息时通过http协议传输的,服务器端用servlet进行解析,就可以获取到信息。


Demo:

(1) 一个简单的html页面(login.html):  

<html>
  <head>
     <title>登录</title>
  </head>
  <body>
       <form action="http://localhost:8089/test_servlet/loginServlet" >
			用户:<input type="text" name="username"><br>
			密码:<input type="password" name="password"><br>
			<input type="submit" value="登录">
		</form>
  </body>
</html>

  登录按钮的类型为submit,直接提交from表单,提交的地址是action的内容,默认的提交方式get;

  

(2)自己编写的LoginServlet.java文件 

 

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class LoginServlet extends HttpServlet{
	
	public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{
		   String username=request.getParameter("username");
		   String password=request.getParameter("password");
		
		   System.out.println("username="+ username);
		   System.out.println("password="+password);
		
		   response.setContentType("text/html");
		   response.getWriter().println("Login Success");
	}
}

自己编写的Servlet都继承了HttpServlet,用到了两个接口HttpServletRequest和HttpServletResponse用于接收请求和做出响应。需要引用一个jar包:servlet-api.jar


(3)对LoginServlet.java文件进行编译

     前提我们已经配置好jdk的环境,在dos窗口中把路径切换到存放LoginServlet.java的路径,输入javac + 文件名,会生成一个class文件。如图:

     

      

     生成的class文件:

     
   

   编译过程中可能会遇到下图中类似的错误:

   

   原因一:用的jar包需要环境变量中的系统变量的classpath中进行配置:

      

  原因二:

        java文件中有编写错误,因为是大小写严格区分所以检查自己的代码是否正确。


(4)Tomcat中进行配置

     Tomcat的目录结构:

    

   将我们的Demo--test_servlet放到webapps目录下

   每个项目中文件目录也是有规范的:会有一个WEB-INF文件夹,其中包含lib文件夹和classes文件夹和web.xml文件;

   将我们编译生成的class文件放到classes文件夹中:

 (5)编写web.xml文件

      作用:按路径映射和Servlet映射做匹配,找到对应的Servlet处理请求。

    

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
	xmlns="http://java.sun.com/xml/ns/javaee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
	
	<servlet>
	   <servlet-name>MyServlet</servlet-name>
	   <servlet-class>LoginServlet</servlet-class>
	</servlet>
	
	<servlet-mapping>
	   <servlet-name>MyServlet</servlet-name>
	   <url-pattern>/loginServlet</url-pattern>
	</servlet-mapping>
	
	
</web-app>

  在html文件中action有请求路径,找到对应servlet-mapping中的url-pattern,得到servlet-name,再由servlet-name找到对应的servlet-class即LoginServlet。


(6)启动tomcat服务

    找到bin文件夹下的startup.bat,运行……

(7)执行

  

  输入用户名和密码后,tomcat可以得到请求:

  

  响应到界面:

   

  因为是get方式我们可以看到用户名和密码显示在路径中,所以我们一般用post提交方式。


总结:

    这个小小的Demo却包含了挺多的知识,很多小细节上网查之后才明白为什么那么写,总结过程才不断地问自己为什么,以后多多总结。

   

    

   

    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 23
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值