`
rys5851968
  • 浏览: 148774 次
社区版块
存档分类
最新评论

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("<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,验证用户名和密码是否正确

//用户验证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文件:

<?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的用户登录网站实例

    Java Web开发: 基于HttpServlet的用户登录网站 实例,参见博客:http://blog.csdn.net/yanzi1225627/article/details/8569950

    AJAX在Java Web中的应用实例

    会员注册唯一性检查的业务逻辑由一个名为CheckUser.java(见例程1)的HttpServlet来实现,CheckUser在web.xml中配置(见例程2),然后在会员注册页index.htm(见例程3)中使用AJAX技术异步调用CheckUser完成会员注册...

    Vue调用后端java接口的实例代码

    前段时间 做了个学校的春萌项目,其中用到vue连接后端java接口。 先上后端接口代码: package controller; import net.sf.json.JSONObject; import util.DBUtil; import javax.servlet.ServletException; import ...

    网站登录页面实例

    网站登录页面实例 部分代码如下,下载可看查看全部: 1.数据库结构(为简便这边采用access,实际应用中建议采用其他数据库如MySQL,MSSQL等) ============================== uname 用户名 文本型 pword 密码 文本型...

    JSP/Servlet Java面试逻辑题

    session是代表与用于某个 Web 客户机的一个用户体验相关的对象和属性。一个 Web 会话可以也经常会跨越多个客户机请求。 application是代表与整个 Web 应用程序相关的对象和属性。这实质上是跨越整个 Web 应用程序...

    javaweb servlet(两种方式)和 filter的最简单实例

    javaweb servlet(两种方式)和 filter的最简单实例

    servlet temple

    可从sun公司的Web站点下载 Java Servlet 开发工具。 下面主要介绍javax.servlet.http提供的HTTP Servlet应用编程接口。  HTTP Servlet 使用一个 HTML 表格来发送和接收数据。要创建一个 HTTP Servlet,请扩展 ...

    SSM框架集成

    其核心为DispatcherServlet,本质上是基于HttpServlet实现的框架。 深入学习博客:http://www.cnblogs.com/baiduligang/p/4247164.html 二、Spring spring是J2EE应用程序框架,是轻量级的IoC和AOP的容器框架,主要...

    java-servlet-api.doc

    Java Servlet API说明文档 绪言 这是一份关于2.1版JavaServletAPI的说明文档,作为对这本文档的补充,你可以到http://java.sun.com/products/servlet/index.html下面下载Javadoc格式的文档。 谁需要读这份文档 这份...

    基于SpringMVC annotation 的图形验证码

    基于SpringMVC annotation 的图形验证码 主要是controller的写法 实现前台验证码的显示 和刷新 验证功能相信大家都能写出来 访问 http://localhost:8080/SpringMVC_annotation_volidate/login jsp页面关键代码 ...

    java结合jsp写的上传文件代码

    import java.io.File; import java.io.IOException; import java.io.PrintWriter; import java.util.Iterator; import java.util.List; import javax.servlet.ServletException; import javax.servlet....

    JSP 中Servlet的自己实现

    三 实例 1、创建MyFirstServletDemo web project.  2、编辑index.jsp &lt;&#37;@ page language=java import=java.util.* contentType=text/html; charset=utf-8%&gt; &lt;&#37; String path = request....

    J2EE面试题

    b) javax.servlet.HttpServlet; c) javax.servlet.GenericServlet; d) javax.servlet.http.Servlet; 2) 利用JavaMail API发送邮件的过程中,()能获取正确的session对象。 a) Session mailsession=...

    Struts2属性文件详解

    对于某些Java EE服务器,不支持HttpServlet Request调用getParameterMap()方法,此时可以设置该属性值为true来解决该问题.该属性的默认值是false.对于 WebLogic、Orion和OC4J服务器,通常应该设置该属性为true. struts....

    Java Servlet生成JSON格式数据并用jQuery显示的方法

    本文实例讲述了Java Servlet生成JSON格式数据并用jQuery显示的方法。分享给大家供大家参考,具体如下: 1、Servlet通过json-lib生成JSON格式的数据 import java.io.IOException; import java.io.PrintWriter; ...

    Jsp文件上传下载(工具类源码)

    &lt;%@ page language="java" import="java.util.*" pageEncoding="gb2312"%&gt; &lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"&gt; ; charset=UTF-8"&gt; 文件上传 enctype="multipart/form-...

    PersonServlet

    要响应HTTP GET请求,您需要做的就是使用实例化Transformer并使用它执行转换的过程覆盖HttpServlet doGet()方法。 如下例所示,您可以生成一个ResultStream,PrintWriter将该ResultStream写入HttpResponse ...

    看透springMvc源代码分析与实践

    2.4 Servlet与Java Web开发22 第3章 DNS的设置23 3.1 DNS解析23 3.2 Windows 7设置DNS服务器24 3.3 Windows设置本机域名和IP的对应关系25 第4章 Java中Socket的用法26 4.1 普通Socket的用法26 4.2 NioSocket...

    ajax响应json字符串和json数组的实例(详解)

    最近上班太忙,晚上抽空整理一下ajax请求中,后台返回json字符串和json数组的场景,以及前台的...import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.H

    JSP使用自定义标签防止表单重复提交的方法

    本文实例讲述了JSP使用自定义标签防止表单重复提交的方法。分享给大家供大家参考。具体如下: 1. 编写servelt: package cn.itcast.apsliyuan.web.servlet; import java.io.IOException; import javax.servlet....

Global site tag (gtag.js) - Google Analytics