`

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的用户登录网站实例是一个基础但重要的实践,它涉及到许多核心概念和技术。这个实例通常包括以下关键知识点: 1. **Servlet**:Servlet是Java编程语言中用来扩展服务器功能的接口...

    Java Web应用开发实例

    【Java Web应用开发实例】是关于使用Java技术开发Web应用程序的实践教程,主要涉及Eclipse集成开发环境(IDE)与Apache Tomcat服务器的配置以及基本的JSP和Servlet的创建。以下将详细解释这些知识点: 1. **Eclipse...

    深入学习:Java Servlet开发与实例

    7. **MVC(Model-View-Controller)架构**:在Java Web开发中,Servlet常作为Controller角色,处理用户请求,与Model(业务逻辑)和View(视图)进行交互,实现解耦合的架构。 8. **Filter和Listener**:Servlet ...

    深入Java Web心脏:Servlet工作原理全解析

    - **Web开发**:Java Servlet和JavaServer Pages (JSP)是构建动态网站的核心技术。 - **大数据技术**:Java在Hadoop等大数据技术栈中占据重要地位。 - **桌面应用**:JavaFX为构建富客户端应用程序提供了API。 - **...

    D:\books-technology\java\javaweb 1200\java web开发实战1200例 第二卷 源码.7z

    《Java Web开发实战1200例》第二卷是一本深度涵盖Java Web开发技术的书籍,其源码压缩包提供了丰富的实例代码,旨在帮助开发者深入理解并熟练掌握Java Web开发的各项技能。压缩包名为"java web开发实战1200例 第二卷...

    java web 开发实战经典书中实例代码.rar

    Java Web开发是构建基于互联网应用程序的关键技术,涵盖了服务器端编程、网页交互以及数据库管理等多个方面。这本书的实例代码集合提供了一次深入学习和实践Java Web的机会。以下将详细阐述相关知识点: 1. **...

    精通struts.基于MVC的.java.web设计与开发.pdf 高清下载

    ### Struts框架精讲:基于MVC的Java Web设计与开发 #### 一、Struts框架简介 **Struts**是Apache基金会支持的一个开源项目,它是一个用于开发Java Web应用程序的MVC(Model-View-Controller)框架。Struts简化了...

    Eclipse开发Web项目实例

    【Eclipse开发Web项目实例】 在本文中,我们将深入探讨如何使用Eclipse这一强大的集成开发环境(IDE)来创建和管理Web项目。Eclipse是一款广泛使用的开源开发工具,尤其适用于Java开发者,它提供了丰富的功能来支持...

    Java Web应用开发 JavaWeb应用开发期末试卷A卷.doc

    【Java Web应用开发知识点】 1. JSP表达式:在JSP中,要使用一个表达式,需要用到`&lt;%= %&gt;`元素,它用于输出变量或表达式的值到页面上。 2. JSP注释:在客户端浏览器的源代码中可以看到HTML注释,JSP注释在客户端是...

    基于java的MVC架构下用户登录验证实例

    ### 基于Java的MVC架构下的用户登录验证实例详解 #### 一、数据处理过程介绍 在基于Java的MVC(Model-View-Controller)架构中,用户登录验证是一个典型的应用场景。该架构将应用程序分为三个核心部分:模型...

    深入学习:Java Servlet开发与实例.rar

    **Java Servlet 深入学习:开发与实例** ...通过这份《深入学习:Java Servlet开发与实例》的学习,开发者不仅可以掌握Servlet的基础知识,还能了解其在实际项目中的应用,进一步提升Java Web开发能力。

    java web servlet实例

    Java Web Servlet实例是Java开发Web应用的基本组成部分,它在服务器端处理HTTP请求并生成响应。Servlet是Java EE(企业版)规范的一部分,用于扩展服务器的功能,尤其是与Web应用程序交互。这个实例是为初学者设计的...

    Java Web程序设计——图书借阅网站的实现——图书信息实验.docx

    Java Web程序设计主要涉及到Web应用的开发,特别是针对图书借阅网站的实现。在这个过程中,开发者需要掌握多种技术,包括Servlet、JSP、JavaBean、MVC和DAO设计模式,以及JDBC API的使用。 Servlet是Java Web的核心...

    完整版Java web开发教程PPT课件 Java开发进阶教程 第06章 SERVLET(共15页).pptx

    Java Web开发是构建基于Web的应用程序的关键技术,涵盖了多种组件和技术,如Servlet、JSP、Spring MVC等。Servlet是Java Web开发中的核心组件之一,它是一个由Java编写的服务器端程序,主要负责处理客户端(浏览器)...

    Java Web典型模块与项目实战大全源代码16-18

    6. **典型模块**:在Java Web开发中,常见的模块可能包括用户认证与授权(登录注册、权限控制)、数据访问对象(DAO)、模型-视图-控制器(MVC)架构、会话管理、错误与异常处理等。这些模块的源代码分析有助于深入...

    Java web 的案例

    Java Web 是一种基于Java技术构建Web应用程序的框架和标准,它包括了服务器端的Java API,如Servlet、JSP(JavaServer Pages)以及一系列相关的组件,用于开发动态、交互式的Web应用。本案例旨在提供一个基础的Java ...

    AJAX在Java Web中的应用实例

    在Java Web开发中,AJAX(Asynchronous JavaScript and XML)技术被广泛用于创建富互联网应用程序(RIA),它允许网页部分内容的异步更新,提高了用户体验。以下是一个关于AJAX在会员注册唯一性检查中的具体应用实例...

    深入体验Java web开发内幕

    通过深入了解Java Web开发中的Servlet技术,我们可以更好地掌握如何构建动态网站和服务。Servlet不仅能够处理复杂的业务逻辑,还能与其他Java技术(如JSP、JDBC等)结合使用,进一步增强Web应用的功能和性能。对于...

    java+WEB网络开发技术大全

    Java+Web网络开发技术是构建基于Java平台的Web应用程序的核心技术,主要涵盖了JSP(JavaServer Pages)、Servlet、JavaBean以及MVC架构等关键概念。本篇将详细讲解这些技术及其在实际开发中的应用。 首先,JavaWeb...

Global site tag (gtag.js) - Google Analytics