- 浏览: 514745 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (136)
- SOS经典收藏 (9)
- 好文收藏 (3)
- 技术杂烩 (6)
- SQL常用操作 (8)
- J2EE开发错误 (11)
- Java开发点滴_SSH (20)
- 数据库维护 (11)
- 网络相关 (1)
- WEB JS_CSS_DIV (10)
- 加密解密 (1)
- Swing (2)
- C&C++ (8)
- Linux (2)
- 软件工程 (5)
- Util (3)
- 我的实例 (3)
- Office办公常用 (3)
- JSP_Servlet (3)
- 开发手记 (4)
- Java基础 (3)
- Oracle技术 (6)
- 基础文档库 (9)
- 设计模式 (1)
- weblogic8.1启动的时候,项目报错,找不到Class (0)
- Office应用 (1)
- VM虚拟机技术 (1)
- PHP开发日记 (0)
最新评论
-
MoonLord:
其实不需要删文件,修改一个值就好了,参考:https://gi ...
Beyond Compare报应用程序发生错误 不能打开解决办法 -
别拿土豆不当马铃薯:
${pageContext.request.contextPath} JSP取得绝对路径 -
hysunny0923:
不需要DBUtilis.java啦学到很多~感谢分享~~
第一个JSP+Servlet+JavaBean+JDBC示例程序 -
zsxy168:
少了DBUtils.java文件
第一个JSP+Servlet+JavaBean+JDBC示例程序 -
little_demonye:
写得好详细,清楚了很多,太感谢啦
第一个JSP+Servlet+JavaBean+JDBC示例程序
运行环境:
1.在SqlServer下的查询分析器中新建表:
2.在MyEclipse中新建Web工程,并创建包结构。
3.编写登陆界面。
3.编写工具类DBConn。
4.编写Servlet,LoginServlet.java。
5.在web.xml中配置Servlet。
配置关键代码
本机上的整个Web.xml代码
5.编写userBean。
6.编写JavaBean CheckUser。
7.编写错误页面及成功登陆页面。
error.jsp
success.jsp
=====================================================================
页面流向图
所涉知识点:
*JDBC连接的数据库的写法
*在Web.xml中配置Servlet
*在JSP中使用JavaBean
<jsp:useBean>与<jsp:setProperty>
<jsp:useBean>与<jsp:setProperty>是联系在一起的,在<jsp:setProperty>中的name值应当和<jsp:useBean>中的ID值相同。
*js验证的写法,及在页面中的触发
*request、response的常见用法
*转发和重定向的区别
转向页面:
重定向(redirect):以前的request中存放的变量全部失效,并进入一个新的request作用域。
转发(Forward):以前的request中存放的变量不会失效,就像把两个页面拼到了一起。
<jsp:forward page="login_success.jsp"/>
(注:只要使用了服务器端跳转<jsp:forward>,则请求内容可以在跳转之后的页面继续得到)
引用
JDK1.5
Tomcat5.5
MyEclips5.5.1 GA
SqlServer2000
windows2003
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
评论
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示例程序”中,我们可以预期以下关键组件: 1. **JSP页面**:展示用户界面,可能包含表单供用户输入数据,使用EL和JSTL标签与JavaBean交互,显示从数据库获取的数据。 2. **...
在本项目中,“基于JSP+JavaBean+Mysql+JDBC+Servlet实现javaWeb登录注册”是一个典型的Java Web应用程序,它使用了多种核心技术来构建一个完整的用户管理系统,包括用户登录和注册。以下是对这些技术及其在项目中的...
【标题】"jsp+servlet+javabean jdbc连接数据库 用户登录"所涉及的知识点主要集中在Web开发中的几个关键组件和技术上。JSP(JavaServer Pages)是Java平台上的动态网页技术,Servlet是Java用于处理HTTP请求的服务端...
在本示例中,JSP可能包含用于显示数据的JSP标签,以及调用Servlet或JavaBean的方法来处理请求。 **Servlet** 是Java Web应用中的服务器端组件,负责接收和响应HTTP请求。在JSP+Servlet+JavaBean架构中,Servlet常常...
"jsp+servlet+javabean实现mvc.rar"这个压缩包文件提供了一个经典的MVC架构示例,帮助初学者理解这个模式的运作方式。 1. **Model(模型)**:模型层是应用程序的核心部分,负责处理业务逻辑和数据操作。在Java中,...
【J2EE项目在线博客系统】是一个典型的Java企业级应用示例,主要使用了jsp、servlet和javabean技术来构建。这个项目是初学者踏入J2EE领域的一个很好的实践平台,它可以帮助开发者理解如何在实际环境中整合这些核心...
本项目以"jsp+servlet+javabean"为基础,旨在为初学者提供一个实践平台,帮助理解这三种技术的集成与应用。 **JSP(JavaServer Pages)** JSP是一种动态网页技术,它允许开发者在HTML页面中嵌入Java代码,实现...
【jsp+JavaBean+Mysql简易留言板】是一个基础的Web应用程序示例,主要展示了如何使用JSP(JavaServer Pages)技术、JavaBean组件以及MySQL数据库来实现一个简单的用户交互功能,即留言功能。这个项目对于初学者来说...
【标题】"使用jsp+servlet+jdbc实现花卉管理系统"是一个基于Java Web技术的项目实例,主要涉及了前端展示层JSP、服务器控制层Servlet以及数据访问层JDBC。这个系统可能是一个适合毕业设计或课程设计的作业,它利用了...
这个简单的MVC示例展示了如何通过JSP、Servlet和JavaBean实现数据的处理、显示以及用户交互。实际项目中,MVC模式可以与其他技术如Spring MVC、Struts等结合,实现更复杂的应用架构。对于初学者来说,理解并实践这个...
【标题】"jsp+JavaBean+Servlet开发的留言板"是一个基于Web的应用程序示例,它展示了如何使用这三种核心技术来构建动态网站功能。这个项目特别适合初学者学习,通过实践可以掌握基本的Web开发技能。 **JavaServer ...
**jsp+javabean+servlet登录示例**是经典的Web开发技术组合,常用于构建动态网页应用程序。这个示例提供了一个完整的登录系统,适合初学者学习和理解这三种技术的协同工作方式。以下是对这些技术及其在登录示例中...
综上所述,"JSP+JavaBean+Servlet的框架demo"提供了一个实践性的教学案例,涵盖了Web开发中的前端展示、后端处理和数据存储等多个关键环节。通过深入学习和实践这个示例,开发者能够更好地理解和掌握Java Web开发的...
综上所述,这个项目提供了一个基本的Web应用示例,演示了如何利用JSP、Servlet和JavaBean进行数据操作,对于初学者来说是一个很好的学习资源。通过分析和实践这个项目,你可以深入了解Java Web开发的基础,并为...
【JSP_Servlet_JavaBean—在线通讯录完整版】是一个典型的Web应用程序示例,它展示了如何使用Java技术栈来构建一个功能完善的在线通讯录系统。这个项目主要涉及了三个核心技术:JavaServer Pages (JSP)、Servlet以及...
本项目“JSP+Servlet+JavaBean__数据库登录验证”显然是一个实战示例,旨在教用户如何利用这三种技术实现用户登录验证功能,并与数据库进行交互。 首先,`JSP`是一种基于Java的服务器端脚本语言,用于生成动态网页...
本项目是一个基于JSP、JavaBean和Servlet技术构建的酒店管理系统,它展示了如何在Web开发中有效地结合这三种技术,实现一个功能齐全、性能稳定且具有高压力承受能力的后台系统。这个系统的设计和实现对于学习Web开发...
【jsp+servlet+javabean留言板】是一种经典的Java Web应用程序开发模式,用于构建交互式的用户界面,例如这里的留言板系统。这个系统主要由三部分组成:JSP(JavaServer Pages)、Servlet和JavaBean。 1. JSP(Java...
【基于JSP+Servlet+Bean的超市账单管理系统】是一个典型的Web应用程序开发案例,它将JSP(JavaServer Pages)用于视图展示,Servlet作为控制器处理请求,而Bean(JavaBeans)作为业务逻辑层,实现了数据的封装和管理...
本教程以"web基础JDBC+Servlet+jsp"为主题,旨在帮助初学者掌握这三个核心概念,实现完整的CRUD(创建、读取、更新、删除)操作。下面将详细介绍这三个技术及其在Web开发中的应用。 **JDBC(Java Database ...