`

第一个JSP+Servlet+JavaBean+JDBC示例程序

阅读更多
运行环境:
引用
JDK1.5
Tomcat5.5
MyEclips5.5.1 GA
SqlServer2000
windows2003


1.在SqlServer下的查询分析器中新建表:
create table dbuser(
userId int identity(1,1) primary key not null,
userName varchar(50),
userPasswd varchar(50))


2.在MyEclipse中新建Web工程,并创建包结构。




3.编写登陆界面。
<%@ page language="java" contentType="text/html; charset=GB18030"
    pageEncoding="GB18030"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>Insert title here</title>
<style type="text/css">
body{
 color : #000 ;
 font-size : 12px ;

 margin : 0px auto ;
 }

</style>

<script type="text/javascript">
    function check(form){
    //document.forms.form1.username.value取得form1中Username的值 并判断是否为空
        if(document.forms.form1.username.value==""){
        //如果 为""则弹出提示
            alert("pls input username");
            //将输入焦点定位到没有输入的地方
            document.forms.form1.username.focus();
            //返回错误
            return false;
        }
                if(document.forms.form1.password.value==""){
            alert("pls input password");
            document.forms.form1.password.focus();
            return false;
        }
    }

</script>
</head>
<body>
<form action="LoginServlet" method="post" name="form1">
    
    
<table border="1" cellspacing="1" cellpadding="1"  bordercolor="silver" align="center">
   <tr>
      <td colspan="2" align="center" bgcolor="#e8e8e8">用户登陆</td>
   </tr>
   <tr>
      <td>用户名:</td>
      <td><input type="text" name="username"/></td>
   </tr>
   <tr>
      <td>密码:</td>
      <td><input type="password" name="password"/></td>
   </tr>
   <tr>
      <td><a href="rsg.jsp" >新用户注册</a></td>
      <!-- onclick="return check(this) 调用上面的Script进行验证 -->
      <td><input type="submit" name="submit" onclick="return check(this);"/><input type="reset" name="reset"/></td>
   </tr>
</table>

</form>
</body>
</html>




3.编写工具类DBConn。
package utils;

	import java.io.*;   
import java.sql.*;   

public class DBConn {   
	    public static String driver;//定义驱动   
	    public static String url;//定义URL   
	    public static String user;//定义用户名   
	    public static String password;//定义密码   
	    public static Connection conn;//定义连接   
	    public static Statement stmt;//定义STMT   
	    public ResultSet rs;//定义结果集   
	    //设置CONN   
	    static{   
	        try { 
		    	driver="com.microsoft.jdbc.sqlserver.SQLServerDriver";
		    	url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=qtliu";
		    	user="sa";
		    	password="sa";
	            Class.forName(driver);   
	            conn = DriverManager.getConnection(url,user,password);
	            System.out.println("-------连接成功------");
	        } catch(ClassNotFoundException classnotfoundexception) {   
	              classnotfoundexception.printStackTrace();   
	            System.err.println("db: " + classnotfoundexception.getMessage());   
	        } catch(SQLException sqlexception) {   
	            System.err.println("db.getconn(): " + sqlexception.getMessage());   
	        }   
	    }   
	    //构造函数,默认加裁配置文件为jdbc.driver   
	    public DBConn(){   
	    	this.conn=this.getConn();
	    }   
	    //返回Conn   
	    public Connection getConn(){   
	    	return this.conn;   
	    }   
	    //执行插入   
	       public void doInsert(String sql) {   
	        try {   
	            stmt = conn.createStatement();   
	            int i = stmt.executeUpdate(sql);   
	        } catch(SQLException sqlexception) {   
	            System.err.println("db.executeInset:" + sqlexception.getMessage());   
	        }finally{   
	               
	        }   
	    }   
	    //执行删除   
	    public void doDelete(String sql) {   
	        try {   
	            stmt = conn.createStatement();   
	            int i = stmt.executeUpdate(sql);   
	        } catch(SQLException sqlexception) {   
	            System.err.println("db.executeDelete:" + sqlexception.getMessage());   
	        }   
	    }   
	    //执行更新   
	    public void doUpdate(String sql) {   
	        try {   
	            stmt = conn.createStatement();   
	            int i = stmt.executeUpdate(sql);   
	        } catch(SQLException sqlexception) {   
	            System.err.println("db.executeUpdate:" + sqlexception.getMessage());   
	        }   
	    }   
	    //查询结果集   
	    public ResultSet doSelect(String sql) {   
	        try {
	        	conn=DriverManager.getConnection(url,user,password);
	        	stmt = conn.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY);     
	            rs = stmt.executeQuery(sql); 
	            System.out.println("取得结果集");
	        } catch(SQLException sqlexception) {   
	            System.err.println("db.executeQuery: " + sqlexception.getMessage());   
	        }   
	        return rs;   
	    }   
	    /**  
	     *关闭数据库结果集,数据库操作对象,数据库链接  
	       @Function: Close all the statement and conn int this instance and close the parameter ResultSet  
	       @Param: ResultSet  
	       @Exception: SQLException,Exception  
	      **/  
	     public void close(ResultSet rs) throws SQLException, Exception {   
	  
	       if (rs != null) {   
	         rs.close();   
	         rs = null;   
	       }   
	  
	       if (stmt != null) {   
	         stmt.close();   
	         stmt = null;   
	       }   
	  
	       if (conn != null) {   
	         conn.close();   
	         conn = null;   
	       }   
	     }   
	  
	     /**  
	      *关闭数据库操作对象,数据库连接对象  
	      * Close all the statement and conn int this instance  
	      * @throws SQLException  
	      * @throws Exception  
	      */  
	     public void close() throws SQLException, Exception {   
	       if (stmt != null) {   
	         stmt.close();   
	         stmt = null;   
	       }   
	  
	       if (conn != null) {   
	         conn.close();   
	         conn = null;   
	       }   
	     }   
	    //测试类   
//	     public static void main(String []args){
//	    	 DBConn db=new DBConn();
//	    	 db.getConn();
//	    	ResultSet rs=db.doSelect("select * from db_user where userName='admin'");
//	    	try {
//				while(rs.next()){
//					System.out.println(rs.getInt(1));
//					System.out.println(rs.getString(3));
//					
//				}
//			} catch (SQLException e) {
//				// TODO Auto-generated catch block
//				e.printStackTrace();
//			}
//	     }
	}  


4.编写Servlet,LoginServlet.java。
package servlet;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import model.CheckUser;
import beans.UserBean;

public class LoginServlet extends HttpServlet {

	/**
	 * 
	 */
	private static final long serialVersionUID = 7381169134016556647L;

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
			doPost(request,response);
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		//设置HTTP响应的文档类型,此处为Text/html,如果更改为application\msword则设置为word文档格式
		response.setContentType("text/html");
		//设置响应所采用的编码方式
		response.setCharacterEncoding("GB18030");
		//取得参数username的值
		String uname=request.getParameter("username");
		String passwd=request.getParameter("password");
		
		
		UserBean user=new UserBean();
		user.setUsername(uname);
		user.setPassword(passwd);
		CheckUser cku=new CheckUser();
		boolean bool=cku.checkUsre(user);
		
		String forward;
		if(bool){
			forward="success.jsp";
			
		}else{
			forward="error.jsp";
		}
		RequestDispatcher rd=request.getRequestDispatcher(forward);
		rd.forward(request,response);
	}


}

5.在web.xml中配置Servlet。
引用

配置关键代码
 <servlet>
    <servlet-name>LoginServlet</servlet-name>
    <servlet-class>servlet.LoginServlet</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>LoginServlet</servlet-name>
    <url-pattern>/LoginServlet</url-pattern>
  </servlet-mapping>


本机上的整个Web.xml代码
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
	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">
  <servlet>
    <servlet-name>LoginServlet</servlet-name>
    <servlet-class>servlet.LoginServlet</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>LoginServlet</servlet-name>
    <url-pattern>/LoginServlet</url-pattern>
  </servlet-mapping>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>




5.编写userBean。
package beans;

public class UserBean {
	

	public String username;
	public String password;
	
	public UserBean() {
		super();
	}
	
	
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}

}


6.编写JavaBean CheckUser。
package model;

import java.sql.ResultSet;
import java.sql.SQLException;

import utils.DBConn;
import utils.DBUtils;
import beans.UserBean;

public class CheckUser {
	
	public boolean checkUsre(UserBean user){
		if(user.username.equals("")||user.username!=null){
			ResultSet rs=null;
			DBConn db=new DBConn();
			rs=db.doSelect("select * from db_user where userName='"+user.getUsername()+"'");
			try {
				if(rs.next()){
					if(user.password.equals("")||user.password!=null){
						rs=db.doSelect("select * from db_user where userPasswd="+user.password);
						return true;
					}
				}
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
		
		return false;
		
	}

}


7.编写错误页面及成功登陆页面。

error.jsp
<%@ page language="java" contentType="text/html; charset=GB18030"
    pageEncoding="GB18030"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>Insert title here</title>
</head>
<body>
Sorry!你的登陆信息不正确!系统无法让你登陆!<a href="login.jsp">点击返回</a>
</body>
</html>


success.jsp
<%@ page language="java" contentType="text/html; charset=GB18030"
    pageEncoding="GB18030"%>

<jsp:useBean id="user" class="beans.UserBean" scope="request"/>
<jsp:setProperty name="user" property="*"/>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>Insert title here</title>
</head>
<body>
<% 
	session.setAttribute("user",user);
	String username=user.getUsername();
 %>
 
 <%=username %>,欢迎您来到FUCK网!<br>
 您的IP是:<%=request.getRemoteAddr() %><br>
你的主机是:<%=request.getRemoteHost() %><br>
你使用的协议是:<%=request.getProtocol() %><br>
你目前的地址是:<%=request.getRealPath("/") %>
你的主机端口是:<%=request.getRemotePort() %>
</body>
</html>


=====================================================================
页面流向图





所涉知识点:
*JDBC连接的数据库的写法

*在Web.xml中配置Servlet



*在JSP中使用JavaBean


<jsp:useBean>与<jsp:setProperty>
<jsp:useBean>与<jsp:setProperty>是联系在一起的,在<jsp:setProperty>中的name值应当和<jsp:useBean>中的ID值相同。

<jsp:useBean id="user" class="beans.UserBean" scope="request"/>
<jsp:setProperty name="user" property="*"/>


*js验证的写法,及在页面中的触发
<script type="text/javascript">
    function check(form){
        if(document.forms.form1.username.value==""){
            alert("pls input username");
            document.forms.form1.username.focus();
            return false;
        }
                if(document.forms.form1.password.value==""){
            alert("pls input password");
            document.forms.form1.password.focus();
            return false;
        }
    }

</script>

<input type="submit" name="submit" onclick="return check(this);"/>


*request、response的常见用法


request常用方法

取得相关信息:
您的IP是:<%=request.getRemoteAddr() %><br>
你的主机是:<%=request.getRemoteHost() %><br>
你使用的协议是:<%=request.getProtocol() %><br>
你目前的地址是:<%=request.getRealPath("/") %>

接收请求内容:

通过:Request.getParemeter(“username”) 接收请求内容:代码如下所示:
String name = request.getParameter("uname") ;
取得文本框提交的信息
String name = request.getParameter("uname") ;
取得按钮的名字:
String name = request.getParameter("submit") ;

设置浏览器的输出文件类型,及编码标准
<%@page contentType="text/html;charset=gb2312"%>

两秒后自动跳转到新页面:
<%response.setHeader("refresh","3;URL=login.jsp");%>

//设置HTTP响应的文档类型,此处为Text/html,如果更改为application\msword则设置为word文档格式

response.setContentType("text/html");

//设置响应所采用的编码方式
response.setCharacterEncoding("GB18030");


*转发和重定向的区别

转向页面:
重定向(redirect):以前的request中存放的变量全部失效,并进入一个新的request作用域。
转发(Forward):以前的request中存放的变量不会失效,就像把两个页面拼到了一起。
<jsp:forward page="login_success.jsp"/>
(注:只要使用了服务器端跳转<jsp:forward>,则请求内容可以在跳转之后的页面继续得到)
Response.sendRedirect(“URL”);//重定向

request.getRequestDispatcher("apage.jsp").forward(request, response);//转发到apage.jsp
<jsp:forward page="d.jsp"/>   //转发到d.jsp 在JSP中使用
response.sendRedirect("apage.jsp");//重定向到apage.jsp



  • 大小: 13.6 KB
  • 大小: 2 KB
  • 大小: 25.4 KB
  • 大小: 18.8 KB
14
0
分享到:
评论
8 楼 hysunny0923 2015-07-30  
不需要DBUtilis.java啦
学到很多~感谢分享~~
7 楼 zsxy168 2014-04-14  
少了DBUtils.java文件
6 楼 little_demonye 2014-02-17  
写得好详细,清楚了很多,太感谢啦
5 楼 顺顺利利 2013-06-29  
求源码打包
4 楼 ta_shuo 2013-05-16  
index.jsp,DBUtiles.java文件在哪里
3 楼 sunlips 2012-09-29  
详细过头啦,哈哈哈
2 楼 zmmpsw1 2012-03-22  
我却,够全,够详细,顶你。
1 楼 mr.covet 2011-11-22  
顶一个

相关推荐

    JSP+Servlet+JavaBean+JDBC示例程序

    在这个“JSP+Servlet+JavaBean+JDBC示例程序”中,我们可以预期以下关键组件: 1. **JSP页面**:展示用户界面,可能包含表单供用户输入数据,使用EL和JSTL标签与JavaBean交互,显示从数据库获取的数据。 2. **...

    基于JSP+JavaBean+Mysql+JDBC+Servlet实现javaWeb登录注册

    在本项目中,“基于JSP+JavaBean+Mysql+JDBC+Servlet实现javaWeb登录注册”是一个典型的Java Web应用程序,它使用了多种核心技术来构建一个完整的用户管理系统,包括用户登录和注册。以下是对这些技术及其在项目中的...

    jsp+servlet+javabean jdbc连接数据库 用户登录

    【标题】"jsp+servlet+javabean jdbc连接数据库 用户登录"所涉及的知识点主要集中在Web开发中的几个关键组件和技术上。JSP(JavaServer Pages)是Java平台上的动态网页技术,Servlet是Java用于处理HTTP请求的服务端...

    简单的jsp+servlet+javaBean访问mysql数据库

    在本示例中,JSP可能包含用于显示数据的JSP标签,以及调用Servlet或JavaBean的方法来处理请求。 **Servlet** 是Java Web应用中的服务器端组件,负责接收和响应HTTP请求。在JSP+Servlet+JavaBean架构中,Servlet常常...

    jsp+servlet+javabean实现mvc.rar

    "jsp+servlet+javabean实现mvc.rar"这个压缩包文件提供了一个经典的MVC架构示例,帮助初学者理解这个模式的运作方式。 1. **Model(模型)**:模型层是应用程序的核心部分,负责处理业务逻辑和数据操作。在Java中,...

    J2EE项目在线博客系统(jsp + servlet + javabean)

    【J2EE项目在线博客系统】是一个典型的Java企业级应用示例,主要使用了jsp、servlet和javabean技术来构建。这个项目是初学者踏入J2EE领域的一个很好的实践平台,它可以帮助开发者理解如何在实际环境中整合这些核心...

    jsp+servlet+javabean架构项目(初级)

    本项目以"jsp+servlet+javabean"为基础,旨在为初学者提供一个实践平台,帮助理解这三种技术的集成与应用。 **JSP(JavaServer Pages)** JSP是一种动态网页技术,它允许开发者在HTML页面中嵌入Java代码,实现...

    jsp+ javaBean+Mysql简易留言板

    【jsp+JavaBean+Mysql简易留言板】是一个基础的Web应用程序示例,主要展示了如何使用JSP(JavaServer Pages)技术、JavaBean组件以及MySQL数据库来实现一个简单的用户交互功能,即留言功能。这个项目对于初学者来说...

    使用jsp+servlet+jdbc实现花卉管理系统.zip

    【标题】"使用jsp+servlet+jdbc实现花卉管理系统"是一个基于Java Web技术的项目实例,主要涉及了前端展示层JSP、服务器控制层Servlet以及数据访问层JDBC。这个系统可能是一个适合毕业设计或课程设计的作业,它利用了...

    简单的jsp+servlet+javaBean实现MVC

    这个简单的MVC示例展示了如何通过JSP、Servlet和JavaBean实现数据的处理、显示以及用户交互。实际项目中,MVC模式可以与其他技术如Spring MVC、Struts等结合,实现更复杂的应用架构。对于初学者来说,理解并实践这个...

    jsp+JavaBean+Servlet开发的留言板

    【标题】"jsp+JavaBean+Servlet开发的留言板"是一个基于Web的应用程序示例,它展示了如何使用这三种核心技术来构建动态网站功能。这个项目特别适合初学者学习,通过实践可以掌握基本的Web开发技能。 **JavaServer ...

    jsp+javabean+servlet登录示例

    **jsp+javabean+servlet登录示例**是经典的Web开发技术组合,常用于构建动态网页应用程序。这个示例提供了一个完整的登录系统,适合初学者学习和理解这三种技术的协同工作方式。以下是对这些技术及其在登录示例中...

    JSP+JavaBean+Servlet的框架demo

    综上所述,"JSP+JavaBean+Servlet的框架demo"提供了一个实践性的教学案例,涵盖了Web开发中的前端展示、后端处理和数据存储等多个关键环节。通过深入学习和实践这个示例,开发者能够更好地理解和掌握Java Web开发的...

    jsp+servlet+javabean的增删改查

    综上所述,这个项目提供了一个基本的Web应用示例,演示了如何利用JSP、Servlet和JavaBean进行数据操作,对于初学者来说是一个很好的学习资源。通过分析和实践这个项目,你可以深入了解Java Web开发的基础,并为...

    JSP_Servlet_JavaBean—在线通讯录完整版

    【JSP_Servlet_JavaBean—在线通讯录完整版】是一个典型的Web应用程序示例,它展示了如何使用Java技术栈来构建一个功能完善的在线通讯录系统。这个项目主要涉及了三个核心技术:JavaServer Pages (JSP)、Servlet以及...

    JSP+Servlet+JavaBean__数据库登录验证

    本项目“JSP+Servlet+JavaBean__数据库登录验证”显然是一个实战示例,旨在教用户如何利用这三种技术实现用户登录验证功能,并与数据库进行交互。 首先,`JSP`是一种基于Java的服务器端脚本语言,用于生成动态网页...

    JSP+JavaBean+Servlet酒店管理系统

    本项目是一个基于JSP、JavaBean和Servlet技术构建的酒店管理系统,它展示了如何在Web开发中有效地结合这三种技术,实现一个功能齐全、性能稳定且具有高压力承受能力的后台系统。这个系统的设计和实现对于学习Web开发...

    jsp+servlet+javabean留言板

    【jsp+servlet+javabean留言板】是一种经典的Java Web应用程序开发模式,用于构建交互式的用户界面,例如这里的留言板系统。这个系统主要由三部分组成:JSP(JavaServer Pages)、Servlet和JavaBean。 1. JSP(Java...

    基于JSP+Servlet+Bean的超市账单管理系统

    【基于JSP+Servlet+Bean的超市账单管理系统】是一个典型的Web应用程序开发案例,它将JSP(JavaServer Pages)用于视图展示,Servlet作为控制器处理请求,而Bean(JavaBeans)作为业务逻辑层,实现了数据的封装和管理...

    web基础JDBC+Servlet+jsp

    本教程以"web基础JDBC+Servlet+jsp"为主题,旨在帮助初学者掌握这三个核心概念,实现完整的CRUD(创建、读取、更新、删除)操作。下面将详细介绍这三个技术及其在Web开发中的应用。 **JDBC(Java Database ...

Global site tag (gtag.js) - Google Analytics