Java Web开发: 基于HttpServlet的用户登录网站 实例

      一个简单的小例子,基于httpservlet的用户登录(杂家是菜鸟刚接触javaee,只能从最简单出发了),首先看业务逻辑:

有三个文件组成,分别是登录、验证和欢迎界面。要达到的目标是:

下图是HttpServlet处理doGet和doPost请求的异同:

废话不说了,先看源码:

第一:Login.java

//登陆界面

package yan.guoqi;

import javax.servlet.http.*;

import java.io.*;


public class Login extends HttpServlet{
	
	public void doGet(HttpServletRequest req, HttpServletResponse res){
	//业务逻辑
	try{
		//中文乱码解决
		res.setContentType("text/html;charset=gbk");
		PrintWriter pw = res.getWriter();
		
		//返回登陆页面
		pw.println("");
		pw.println("");
		pw.println("

登陆界面

"); pw.println("
"); pw.println("用户名:
"); pw.println("密码:
"); pw.println("
"); pw.println("
"); pw.println(""); pw.println(""); } catch(Exception ex){ ex.printStackTrace(); } } public void doPost(HttpServletRequest req, HttpServletResponse res){ this.doGet(req, res); } }


第二:LoginCL.java,验证用户名和密码是否正确

//用户验证servlet


package yan.guoqi;

import javax.servlet.http.*;

import java.io.*;



public class LoginCL extends HttpServlet{
	
	public void doGet(HttpServletRequest req, HttpServletResponse res){
	//业务逻辑
	try{
	//接受用户名和密码
	String u = req.getParameter("username");
	String p = req.getParameter("passwd");
	//验证
	if(u.equals("yan") && p.equals("yan")){
		//合法
		//跳转到welcome
			
		res.sendRedirect("wel");
		
	}
	else{
		//不合法
		//跳转
		res.sendRedirect("login");//你要跳转的servlet的url
	}
		
	
	}
	catch(Exception ex){
		ex.printStackTrace();
	}
	
		
	}
	
	public void doPost(HttpServletRequest req, HttpServletResponse res){
		
		this.doGet(req, res);
	}
}


第三:Wel.java 如果验证成功,显示欢迎界面

	//欢迎界面
	
	
	package yan.guoqi;
	
	import javax.servlet.http.*;
	
	import java.io.*;
	
	
	public class Wel extends HttpServlet{
		
		public void doGet(HttpServletRequest req, HttpServletResponse res){
		//业务逻辑
		try{
			res.setContentType("text/html;charset=gbk");
			PrintWriter pw = res.getWriter();			
			pw.println("Welcome,恭喜您,已成功登陆!");
		
	
	
		}
		catch(Exception ex){
			ex.printStackTrace();
		}
		
			
		}
		
		public void doPost(HttpServletRequest req, HttpServletResponse res){
			
			this.doGet(req, res);
		}
	}

第四web.xml文件:







	Welcome to Tomcat
	
     Welcome to Tomcat
  

	
		
		login
		
		yan.guoqi.Login
	

	
		
		login
		
		/login

	

	
		
		logincl
		
		yan.guoqi.LoginCL
	

	
		
		logincl
		
		/logincl
	

	
		
		wel
		
		yan.guoqi.Wel
	

	
		
		wel
		
		/wel

	




总结知识点:

1,页面的跳转用res.sendRedirect("xxx")来实现,xxx是xml文件里要跳转的servlet对应的url名字。

2,接收用户名和密码用String u = req.getParameter("username");还实现。其中的username是pw.println("用户名:
");这里对应的名字。

3,servlet里嵌入html语言。比如Login.java里的下面语句:

pw.println("");
		pw.println("");
		pw.println("

登陆界面

"); pw.println("
"); pw.println("用户名:
"); pw.println("密码:
"); pw.println("
"); pw.println("
"); pw.println(""); pw.println("");


看来还要学习下html语言啊!

4,servlet解决中文乱码的方法:

res.setContentType("text/html;charset=gbk");

5,每个.java文件都要编译。对应的servlet文件在web.xml文件里都要配置注册下,这点很像android开发的Manifinest.xml文件。每次更改.java文件时,按韩顺平老师的讲解是reload一下。但有时候reload一下不中,把tomcat关闭重新开,浏览器关闭再输入网址打开,这样才看到更改后的效果。

-----------------------------下次这个验证模块要连上数据库,这个算小demo吧!大牛就别看源码了。Java web长路漫漫啊。。。。

源码:http://download.csdn.net/detail/yanzi1225627/5053157  下载后参照http://blog.csdn.net/yanzi1225627/article/details/8564455在相应位置新建文件夹,对应的文件放进去。


 

 

你可能感兴趣的:(Java,Web)