一个简单的小例子,基于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("
");
}
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("
");
看来还要学习下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在相应位置新建文件夹,对应的文件放进去。