通过继承HttpServlet开发一个用户登录界面

首先先完成用户登录界面.html部分代码

如下代码,这里用到了一个新的网页编辑脚本语言,我们最主要了解的是它的“td input”这部分是提交表单的一个指令
<td class="controler"><input type="password" name="mypassword" >td>

例如这段代码的意思便是显示一个类型为password的表单,提交的类型(type)也就是密码格式,也有text形式,这个具体的见W3Cschool,如果觉得麻烦可以用adobe公司的DW来完成前端的开发。

<h1>用户注册h1>
    <hr>
    <html><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    <form name="regForm" action="servlet01" method="post" >
    
			  <table border="0" width="800" cellspacing="0" cellpadding="0">
			    <tr>
			    	<td class="lalel">用户名:td>
			    	<td class="controler"><input type="text" name="username" />td>
			    tr>
			    <tr>
			    	<td class="label">密码:td>
			    	<td class="controler"><input type="password" name="mypassword" >td>
			    	
			    tr>
			    <tr>
			    	<td class="label">确认密码:td>
			    	<td class="controler"><input type="password" name="confirmpass" >td>
			    	
			    tr>
			    <tr>
			    	<td class="label">电子邮箱:td>
			    	<td class="controler"><input type="text" name="email" >td>
			    	
			    tr>
			    <tr>
			    	<td class="label">性别:td>
			    	<td class="controler"><input type="radio" name="gender" checked="checked" value="Male"><input type="radio" name="gender" value="Female">td>
			    	
			    tr>
			   
			    <tr>
			    	<td class="label">出生日期:td>
			    	<td class="controler">
			    	  <input name="birthday" type="text" id="control_date" size="10"
                      maxlength="10" onclick="new Calendar().show(this);" readonly="readonly" />
			    	td>
			    tr>
			    <tr>
			    	<td class="label">爱好:td>
			    	<td class="controler">
			    	<input type="checkbox" name="favorite" value="nba"> NBA  
			    	  <input type="checkbox" name="favorite" value="music"> 音乐  
			    	  <input type="checkbox" name="favorite" value="movie"> 电影  
			    	  <input type="checkbox" name="favorite" value="internet"> 上网  
			    	td>
			    tr>
			    <tr>
			    	<td class="label">自我介绍:td>
			    	<td class="controler">
			    		<textarea name="introduce" rows="10" cols="40">textarea>
			    	td>
			    tr>
			    <tr>
			    	<td class="label">接受协议:td>
			    	<td class="controler">
			    		<input type="checkbox" name="isAccept" value="true">是否接受条款
			    	td>
			    tr>
			    <tr>
			    	<td colspan="2" align="center">
			    		<input type="submit" value="注册"/>  
			    	    <input type="reset" value="取消"/>  
			    	td>
			    tr>
			  table>
	form>


一定要注意action后填的是一个url,这个url必须指向你即将写的servlet文件,并且如果你在servlet中用的是post方法method后就加post

这里是你要进行控制判断登陆的servlet文件

package demo1;

//这里是要通过实现继承httpservlet来开发动态网页所需要导入的包
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


@WebServlet("/servlet01")
public class servlet01 extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
  
    public servlet01() {
        super();
      
    }

	
	
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//这里使用了doget的方法,doget方法,这个方法中又传入了两个对象一个是request,一个是response
		//这里用到了接口,数据以方法参数的形式传递;
		
		 request.setCharacterEncoding("utf-8");
		//接收的文本汉化方案
		 response.setContentType("text/html;charset=gb2312");
		//发送的文本汉化方案
		String[] favorite = request.getParameterValues("favorite");
		//复选框部分方法,用字符数组来记录喜爱
		String aaa= request.getParameter("username");
		//用字符串方法来记录用户名,密码这里用了request中一个重要的方法
		//getParameter方法
		String bbb= request.getParameter("mypassword");
		String ccc= request.getParameter("gender");
		if("qinshiwei".equals(aaa)&&"123456".equals(bbb)) {
			//这里用了response中一个getWriter方法
			response.getWriter().write("账号是:"+aaa);
			response.getWriter().write("
"
); response.getWriter().write("密码是:"+bbb); response.getWriter().write("
"
); response.getWriter().write("性别为:"+ccc); response.getWriter().write("
"
); response.getWriter().write("爱好为:"); for (int i=0; favorite!=null && i<favorite.length; i++){ response.getWriter().write(favorite[i]+" "); } } else{ response.getWriter().write("密码错误或账号错误".toString()); } } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub doGet(request, response); } }

这个文件主要实现跳转判断控制,其中主要用了继承httpservlet所传进来的doget和dopost方法,这两种方法都是进行传值的方法,但是不同的是doget方法使用明文传输(也就是传输通过url,传递的表单里的值也都在url中)这种方法很不安全,而dopost方法是用文本的形式进行传输,这两种方法都传入了两个对象

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 

这段话中的request和response都是新实例化的对象,

String bbb= request.getParameter("mypassword");

request中的getParameter方法主要是从用户端得到表单的信息,并把这个信息赋值给bbb

response.getWriter().write("密码是:"+bbb);

response中的getWriter方法是将服务器处理后的值传递给客户端,这里把bbb原封不动地传递回去

当然完成这些的前提是tomcat和service都部署好的情况下,出现404是因为url没有写对,可以打开xml看看自己的逻辑链接有无问题

你可能感兴趣的:(java)