Java Web开发: 基于HttpServlet的用户登录网站 实例
来源:互联网 发布:怎样制作软件程序 编辑:程序博客网 时间:2024/05/15 02:31
一个简单的小例子,基于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("<html>");pw.println("<body>");pw.println("<h1>登陆界面</h1>");pw.println("<form action=logincl method=post>");pw.println("用户名:<input type=text name=username><br>");pw.println("密码:<input type=password name=passwd><br>");pw.println("<input type=submit value=登陆><br>");pw.println("</form>");pw.println("<body/>");pw.println("<html/>");}catch(Exception ex){ex.printStackTrace();}}public void doPost(HttpServletRequest req, HttpServletResponse res){this.doGet(req, res);}}
第二:LoginCL.java,验证用户名和密码是否正确
//用户验证servletpackage 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")){//合法//跳转到welcomeres.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文件:
<?xml version="1.0" encoding="UTF-8"?><!-- ISO-8859-1 --><!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --><web-app 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"version="2.5"><display-name>Welcome to Tomcat</display-name><description> Welcome to Tomcat </description><servlet><!--给survlet起个名字,可以是任意的 --><servlet-name>login</servlet-name><!--servlet的路径(包名+类名) --><servlet-class>yan.guoqi.Login</servlet-class></servlet><servlet-mapping><!-- servlet的名字和上面保持统一 --><servlet-name>login</servlet-name><!-- 这是在浏览器中输入的访问该survlet的url,任意的 --><url-pattern>/login</url-pattern></servlet-mapping><servlet><!--给survlet起个名字,可以是任意的 --><servlet-name>logincl</servlet-name><!--servlet的路径(包名+类名) --><servlet-class>yan.guoqi.LoginCL</servlet-class></servlet><servlet-mapping><!-- servlet的名字和上面保持统一 --><servlet-name>logincl</servlet-name><!-- 这是在浏览器中输入的访问该survlet的url,任意的 --><url-pattern>/logincl</url-pattern></servlet-mapping><servlet><!--给survlet起个名字,可以是任意的 --><servlet-name>wel</servlet-name><!--servlet的路径(包名+类名) --><servlet-class>yan.guoqi.Wel</servlet-class></servlet><servlet-mapping><!-- servlet的名字和上面保持统一 --><servlet-name>wel</servlet-name><!-- 这是在浏览器中输入的访问该survlet的url,任意的 --><url-pattern>/wel</url-pattern></servlet-mapping></web-app>
总结知识点:
1,页面的跳转用res.sendRedirect("xxx")来实现,xxx是xml文件里要跳转的servlet对应的url名字。
2,接收用户名和密码用String u = req.getParameter("username");还实现。其中的username是pw.println("用户名:<input type=text name=username><br>");这里对应的名字。
3,servlet里嵌入html语言。比如Login.java里的下面语句:
pw.println("<html>");pw.println("<body>");pw.println("<h1>登陆界面</h1>");pw.println("<form action=logincl method=post>");pw.println("用户名:<input type=text name=username><br>");pw.println("密码:<input type=password name=passwd><br>");pw.println("<input type=submit value=登陆><br>");pw.println("</form>");pw.println("<body/>");pw.println("<html/>");
看来还要学习下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开发: 基于HttpServlet的用户登录网站 实例
- 基于HttpServlet的用户登录网站 实例
- java web学习总结22:基于Servlet+JSP+JavaBean开发模式的用户登录注册
- 基于springMVC的JAVA WEB实例开发
- Java 实现基于UDP的用户登录
- WEB网站设计用户登录的安全机制
- [WEB开发] 基于XMLHTTP的简单实例
- 基于JavaReport的Web报表开发实例
- 用户登录数据库验证(JAVA WEB开发)
- 简封为HttpServlet的用户登录例子、结合jdbc的用户登录例子
- 权限登录系统案例-Java Web开发实例
- 基于Servlet+JSP+JavaBean开发模式的用户登录注册
- 基于Servlet+JSP+JavaBean开发模式的用户登录注册
- 基于Servlet+JSP+JavaBean开发模式的用户登录注册
- 基于Servlet+JSP+JavaBean开发模式的用户登录注册
- 基于Servlet+JSP+JavaBean开发模式的用户登录注册
- 基于JSP的开发实例--简单的登录模块
- 基于JSP+JavaBean的开发实例---登录模块的实现
- C#,不定数量参数
- Js 获取Gridview选中行的内容
- Linux常用命令及使用
- [面试] 十七道海量数据处理面试题与Bit-map详解 [未细看]
- windowXP下搭建nginx-1.7.10和apache-tomcat-8.0.18的集群
- Java Web开发: 基于HttpServlet的用户登录网站 实例
- Java程序设计【2】---回文数
- wpp项目的一些记录
- /proc/sys和/sys目录的区别
- 程序员需要专注和懂得舍弃
- s3c2440两种启动方式
- Ajax的工作原理
- 封装数据库操作
- KVO(键值监听模式)