- 浏览: 151106 次
- 性别:
- 来自: 大连
文章分类
最新评论
-
fddjxllren:
session.find()是不支持动态绑定参数的.要使用it ...
Hibernate查询之list/iterator -
xiaofeiyang:
http://svn.apache.org/repos/asf ...
struts,hibernate,spring 版本控制svn的URL地址 -
peterxiemin:
emp在建立的时候,报无效的月份,为什么 ?
oracle的练习表---employee -
java_bigniu:
...
Hibernate查询之list/iterator -
lanhai921:
学习下,谢谢分享。
itext基本用法
MVC的第一个实例-----一个登陆:
首先我们需要一个VO类:
package com.keith.bean; public class TUser implements java.io.Serializable { private static final long serialVersionUID = 1L; private Integer userid; private String userName; private String pwd; public TUser() { } public Integer getUserid() { return userid; } public void setUserid(Integer userid) { this.userid = userid; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getPwd() { return pwd; } public void setPwd(String pwd) { this.pwd = pwd; } }
需要一个数据库工具类,DBConn:
package com.keith.util; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class DBConn { private static final String DBDRIVER = "com.mysql.jdbc.Driver"; private static final String DBURL = "jdbc:mysql://127.0.0.1:3306/login"; private static final String DBUSER = "root"; private static final String DBPWD = "kejianjun"; private Connection conn = null; public DBConn() { try { Class.forName(DBDRIVER); conn = DriverManager.getConnection(DBURL, DBUSER, DBPWD); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } } public void close() throws Exception{ if (this.conn != null) { try { conn.close(); } catch (Exception e) { e.printStackTrace(); } } } public Connection getConn() { return conn; } public void setConn(Connection conn) { this.conn = conn; } }
然后从页面开始index.jsp(客户端验证一下):
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'index.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> <script type="text/javascript"> function validate(f){ if (!(/^\w{4,15}$/.test(f.username.value))) { alert("用户名必须是4~16位!"); f.username.focus(); return false; } if (!(/^\w{4,15}$/.test(f.pwd.value))) { alert("密码必须是4~15位!"); f.pwd.focus(); return false; } return true; } </script> </head> <body> <% List<String> info = (List<String>)request.getAttribute("info"); if(info != null){ Iterator<String> iter = info.iterator(); while(iter.hasNext()){ %> <h3><font color="red"><%=iter.next() %></font></h3> <%} } %> <form action="login" method="post" onsubmit="return validate(this)" name="f"> 用户名:<input type="text" name="username"><br /> 密 码:<input type="password" name="pwd"><br /> <input type="submit" value="登陆"> <input type="reset" value="取消"> </form> </body> </html>
然后通过发出的login请求在web.xml里找到想对应的servlet:
web.xml:
<servlet> <servlet-name>login</servlet-name> <servlet-class>com.keith.servlet.LoginServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>login</servlet-name> <url-pattern>/login</url-pattern> </servlet-mapping> <servlet>
找到了LoginServlet:
package com.keith.servlet; import java.io.IOException; import java.util.ArrayList; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.keith.bean.TUser; import com.keith.factory.DAOFactory; /** * 定义Sevlet * * @author T * */ public class LoginServlet extends HttpServlet { private static final long serialVersionUID = 1L; @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { this.doPost(req, resp); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String sucPath = "main.jsp"; String loginEroPath = "index.jsp"; String username = req.getParameter("username"); String pwd = req.getParameter("pwd"); List<String> info = new ArrayList<String>(); if (username == null || "".equals(username)) { info.add("用户名不能为空!"); } if (pwd == null || "".equals(pwd)) { info.add("密码不能为空!"); } //用户名密码通过验证 if (info.size() == 0) { //实例化VO TUser user = new TUser(); //设置username user.setUserName(username); //设置pwd user.setPwd(pwd); if (DAOFactory.getIUserDAOInstance().findLogin(user)) { info.add("欢迎:" + user.getUserName()); //保存信息,进行跳转 req.setAttribute("info", info); req.getRequestDispatcher(sucPath).forward(req, resp); } else { info.add("用户信息错误!"); req.setAttribute("info", info); req.getRequestDispatcher(loginEroPath).forward(req, resp); } } } }
通过DAO工厂找到UserDAO的实例:这是DAOFactory:
package com.keith.factory; import com.keith.dao.IUserDAO; import com.keith.dao.proxy.UserDAOProxy; /** * 定义工厂类,取得DAO实例 * @author T * */ public class DAOFactory { /** * 取得DAO实例 * @return */ public static IUserDAO getIUserDAOInstance(){ //返回代理实例 return new UserDAOProxy(); } }
返回代理实例,找到userDAO的代理类:
package com.keith.dao.proxy; import com.keith.bean.TUser; import com.keith.dao.IUserDAO; import com.keith.dao.UserDAOImpl; import com.keith.util.DBConn; /** * DAO代理操作类 * * @author T * */ public class UserDAOProxy implements IUserDAO { private DBConn dbc = null; private IUserDAO dao = null; public UserDAOProxy() { //实例化数据库连接 this.dbc = new DBConn(); this.dao = new UserDAOImpl(this.dbc.getConn()); } /** * 代理登陆方法 */ public boolean findLogin(TUser user) { boolean flag = false; try { // 调用真实主题 flag = this.dao.findLogin(user); this.dbc.close(); } catch (Exception e) { e.printStackTrace(); } return flag; } }
找到UserDAOImpl的并执行它的findLogin()方法:
package com.keith.dao; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import com.keith.bean.TUser; public class UserDAOImpl implements IUserDAO { private Connection conn = null; private PreparedStatement pstm = null; public UserDAOImpl(Connection conn) { this.conn = conn; } /** * 登陆 * * @throws SQLException */ public boolean findLogin(TUser user) { boolean flag = false; try { String sql = "SELECT username,pwd FROM tuser WHERE username=? and pwd=?"; this.pstm = this.conn.prepareStatement(sql); this.pstm.setString(1, user.getUserName()); this.pstm.setString(2, user.getPwd()); ResultSet rs = this.pstm.executeQuery(); if (rs.next()) { user.setUserName(rs.getString(1)); flag = true; } } catch (SQLException e) { e.printStackTrace(); } finally { try { if (this.pstm != null) { this.pstm.close(); } } catch (SQLException e2) { e2.printStackTrace(); } } return flag; } }
实现了IUserDAO接口:
package com.keith.dao; import java.sql.SQLException; import com.keith.bean.TUser; /** * userDao接口 * * @author T * */ public interface IUserDAO { /** * 用户登录验证 * * @param user * @return */ public boolean findLogin(TUser user); }
以上就是一个MVC的简单实例;
发表评论
-
JSTL标签之XML标签库,函数标签库
2011-01-20 13:14 0在JSTL中可提供了用于XML解析的操作,这样可以减少 ... -
JSTL常用标签之大聚集---下
2011-01-20 10:17 1371JSTL国际化标签库: 其主要标签如下: NO ... -
JSTL常用标签之大聚集---中
2011-01-20 08:52 969<c:forEach>标签: 主要 ... -
JSTL常用标签之大聚集---上
2011-01-17 22:53 1067JSTL已经被继承到了javaEE ... -
jsp标签编程『续』---简单开发
2011-01-17 16:03 1362在jsp1.2之前如果想要对标签库进行开发,要么继承Ta ... -
jsp标签编程『下』---开发迭代标签
2011-01-17 10:48 1262开发一个迭代标签,此标签只可以对list进行迭代(学习)。 ... -
jsp标签编程『下』---TagSupport类
2011-01-17 10:11 2823掌握基本的标签定义后,可以发现定义标签时都需要继承TagSup ... -
jsp标签编程『中』---定义有属性的标签
2011-01-17 09:13 980定义一个日期标签,则用户就必须指定格式化日期的格式; Dat ... -
jsp标签编程『上』---编写标签
2011-01-16 21:30 10481,什么是JSP标签库? JSP标签库(自定义标签 ... -
javaWeb之表达式语言---初始EL
2011-01-16 08:55 9821,何为表达式语言(Expression Language,E ... -
监听器实例之---在线人员统计
2011-01-15 17:30 0当用户成功登录后,会在列表中增加此用户名称,这样就可 ... -
jsp/servlet之监听器
2011-01-15 16:05 15901,什么是监听器? 其主要的功能就是监听Web ... -
jsp/servlet之过滤器
2011-01-15 14:03 10801,什么是过滤器(filter)? 它是以一种 ... -
javaWeb之MVC模式
2011-01-13 23:11 1384javaWeb引入了servlet概念 ... -
javaWeb之Servlet跳转
2011-01-13 22:53 1837servlet跳转分为:客户端跳转和服务器端跳转; 客户端 ... -
javaWeb之Servlet
2011-01-13 22:22 1493使用jsp可以完成动态的web开发,但是在开发时发现大量的代码 ... -
javaBean实例之注册验证
2011-01-13 14:29 3106首先定义Bean: package com.keith.be ... -
javaWeb之JavaBean
2011-01-13 13:47 12321,什么是JavaBean? ... -
jsp之阶段性总结
2011-01-13 08:53 8741,web安全性! 在web目录中必须存在一个&q ... -
jsp值application
2011-01-12 22:34 11121,什么是application? application对 ...
相关推荐
j2EE-MVC设计模式(内附ppt讲解,学习笔记和应用实例),帮助你理解掌握mvc模式
mvc,mvc设计,mvc实例mvc,mvc设计,mvc实例
我对照网上一篇讲述MVC设计模式的文章,用VS2008的C#语言写的MVC设计模式例子程序。
本文要实现的Java应用程序是当用户在图形化用户界面输入一个球体的半径时,程序将显示该球体的体积与表面积。我们首先利用基本MVC模式实现以上程序,然后利用不同数量的模型、视图、控制器结构来扩展该程序。
自己为了做一个CMS,提前搭的一个单入口MVC,有兴趣的朋友可以下载。
基于MVC模式下设计的多个实例 开发环境: Visual Studio 2010(MVC3) SQL2005 运行环境: .net framework 4.0 SQL2005 网站架构: MVC3 EF4.0 SQLSERVER2005 JSON XML 网站结构: 权限:.net membership 文章...
mvc设计模式实例 mvc设计模式实例 mvc设计模式实例
示例只是简单展示MVC模式的基本应用,有关示例的细节请看:https://blog.csdn.net/ZhangCurie/article/details/104727172
iOS中MVC设计模式代码 iOS+设计模式
基于MVC设计模式开发出的简单PHP框架,对于想精通MVC设计模式的同学来说,非常有帮助
MVC模式是设计模式中很著名的一个,理解mvc对于web开发有很好的启发作用,MVC模式范例是学习MVC的好实例。
ASPNETMVC架构设计模式入门实例 对于ASP.NET MVC,很多开发者持欢迎的态度。不过在吸引了更多人目光的同时,我们也应该看到有很多开发人还不太了解ASP.NET MVC。本文的作用在于给大家一个简单易懂的ASP.NET MVC教程
运用观察者模式及MVC模式的整合,是javaWeb的简单的实现了选民投票
javaME 源码 包括基础知识 、Canvas、RMS 、多线程 、HTTP、Socket、Datagram、文件读写创建删除、PIM、短信彩信、MMAPI、MVC模式等等实例 ---------------以下...17设计模式 18单元测试 19"在线听歌"商务应用实例
首先分析了设计模式、MVC 设计模式,然后设计了一个基于MVC 模式 在.NET 框架下的微生物信息分析系统应用模型,并结合该系统实例,探讨了具体的应用与实现方法。该系统实现了应用程序 模块化,具有良好的安全性、可...
这个练习是基于MVC设计模式的,连接SQL数据库,进行增、删、改、查的一个小项目,有什么不足,可以发表评论,如果你想要什么项目可以给我发信息。
MVC三层架构模式实例,有数据库,可以运行,
上篇:软件设计模式例子代码 【例2.2】简单工厂方法模式-汽车保险 【例2.3】工厂方法模式-汽车保险 【例2.4】抽象工厂模式-房屋信息 【例2.5】生成器模式-房屋信息 【例2.6】单例模式-互联网连接 ...
在介绍了J2EE应用关键技术的基础上,将MVC设计模式引入电子政务系统开发中,结合一个具体的实例,详细讨论了MVC设计模式的思想、软件体系结构以及优异的表现性能。J2EE技术与该模式的结合,简化了软件的开发,提高了...
使用C3p0+MVC模式搭建的Java Web工程,含相应数据表的建表Sql文件。数据库用MySQL数据库,页面视图使用jsp页面,通过Servlet的设计,仅用一个Web页面实现数据表增删改查功能的展示。数据表对各种数据类型都做了测试...