基于jsp+servlet+javabean的MVC模式简单应用
原先写在CSDN的一篇,我直接扒过来吧。之前打算在CSDN的,结果写了几回,发现他那个发布系统简直烂到家,经常丢失图片各种。所以很长一段时间我也没写什么。
一、MVC模式
1、M : javabean;
2、V : jsp;
3、C : servlet;
4、DB:MySQL;
二、文件夹
三、项目内容
1、建立数据库并封装数据库操作
create database testDB; use testDB; create table user ( id int auto_increment primary key, username varchar(20), password varchar(20), phone varchar(20), addr varchar(225) );
/**
* 封装数据库操作
* 包括对javabean存储的操作;
*/
import java.sql.*;
import com.yck.mvc.bean.User;
public class DB
{
static
{
try
{
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e)
{
e.printStackTrace();
}
}
public static Connection getConnection()
{
Connection connection = null;
try
{
connection = DriverManager.getConnection("jdbc:mysql://localhost/testdb?user=root&password=yck940522");
} catch (SQLException e)
{
e.printStackTrace();
}
return connection;
}
public static void closeConnection(Connection connection)
{
try
{
if(connection != null)
{
connection.close();
connection = null;
}
} catch (SQLException e)
{
e.printStackTrace();
}
}
public static PreparedStatement preparedStatement(Connection connection,String sql)
{
PreparedStatement preparedStatement = null;
try
{
preparedStatement = connection.prepareStatement(sql);
} catch (SQLException e)
{
e.printStackTrace();
}
return preparedStatement;
}
public static void closePreparedStatement(PreparedStatement preparedStatement)
{
try
{
if(preparedStatement != null)
{
preparedStatement.close();
preparedStatement = null;
}
} catch (SQLException e)
{
e.printStackTrace();
}
}
public static Statement createStatement(Connection connection)
{
Statement statement = null;
try
{
statement = connection.createStatement();
} catch (SQLException e)
{
e.printStackTrace();
}
return statement;
}
public static void closeStatement(Statement statement)
{
try
{
if(statement != null)
{
statement.close();
statement = null;
}
} catch (SQLException e)
{
e.printStackTrace();
}
}
public static ResultSet getResultSet(Statement statement,String sql)
{
ResultSet resultSet = null;
try
{
resultSet = statement.executeQuery(sql);
} catch (SQLException e)
{
e.printStackTrace();
}
return resultSet;
}
public static void closeResultSet(ResultSet resultSet)
{
try
{
if(resultSet != null)
{
resultSet.close();
resultSet = null;
}
} catch (SQLException e)
{
e.printStackTrace();
}
}
//构造在数据库中存储User的方法
public static void saveUser(User u)
{
Connection connection = null;
PreparedStatement preparedStatement = null;
try
{
connection = DB.getConnection();
String sql = "insert into user values(null,?,?,?,?)";
preparedStatement = DB.preparedStatement(connection, sql);
preparedStatement.setString(1, u.getUsername());
preparedStatement.setString(2, u.getPassword());
preparedStatement.setString(3, u.getPhone());
preparedStatement.setString(4, u.getAddr());
preparedStatement.executeUpdate();
} catch (SQLException e)
{
e.printStackTrace();
}
}
}
2、建立Model:封装User
public class User
{
private String username;
private String password;
private String phone;
private String addr;
public String getUsername()
{
return username;
}
public void setUsername(String username)
{
this.username = username;
}
public String getPassword()
{
return password;
}
public void setPassword(String password)
{
this.password = password;
}
public String getPhone()
{
return phone;
}
public void setPhone(String phone)
{
this.phone = phone;
}
public String getAddr()
{
return addr;
}
public void setAddr(String addr)
{
this.addr = addr;
}
}
3 建立View:写jsp页面
1)register.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!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=UTF-8">
<title>注册用户</title>
</head>
<body>
<form name="regiserForm" action="http://localhost:8080/MVC/RegisterServlet" method = "post">
<table id="registerTableId" align="center">
<tr>
<td colspan="2" align="center">用户注册</td>
</tr>
<tr>
<td>用户名</td> <td><input id="usernameId" type="text" name="username"></td>
<td><span id="usernameTipId"></span></td>
</tr>
<tr>
<td>密码</td> <td><input id="passwordId" type="password" name="password"></td>
<td><span id="passwordTipId"></span></td>
</tr>
<tr>
<td>密码确认</td> <td><input id="password2Id" type="password" name="password2"></td>
<td><span id="password2TipId"></span></td>
</tr>
<tr>
<td>手机号码</td> <td><input id="phoneId" type="text" name="phone"></td>
<td><span id="phoneTipId"></span></td>
</tr>
<tr>
<td>地址</td> <td><textarea id="addrId" name="addr" rows="3" cols="25"></textarea></td>
</tr>
<tr>
<td><input id="registerSubmitId" type="submit" value="提交"></td>
<td><input id="registerResetId" type="reset" value="重置"></td>
</tr>
</table>
</form>
</body>
</html>
2)registerInfo.jsp 显示注册信息
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!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=UTF-8">
<title>注册成功</title>
</head>
<body>
<jsp:useBean id="registerUser" class="com.yck.mvc.bean.User" scope="session"></jsp:useBean>
<table id="registerInfoId" align="center">
<tr><td colspan="2" align="center">用户信息</td></tr>
<tr>
<td>用户名</td> <td> <jsp:getProperty property="username" name="registerUser"/></td>
</tr>
<tr>
<td>手机号码</td> <td> <jsp:getProperty property="phone" name="registerUser"/></td>
</tr>
<tr>
<td>地址</td> <td> <jsp:getProperty property="addr" name="registerUser"/></td>
</tr>
</table>
</body>
</html>
4、建立Control层:写servlet
RegisterServlet
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.yck.mvc.DButil.DB;
import com.yck.mvc.bean.User;
/**
* Servlet implementation class RegisterServlet
*/
@WebServlet("/RegisterServlet")
public class RegisterServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public RegisterServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
doPost(request,response);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
request.setCharacterEncoding("utf-8");
try
{
String username = request.getParameter("username");
String password = request.getParameter("password");
String phone = request.getParameter("phone");
String addr = request.getParameter("addr");
User u = new User();
u.setUsername(username);
u.setPassword(password);
u.setPhone(phone);
u.setAddr(addr);
DB.saveUser(u);
request.getSession().setAttribute("registerUser", u);
request.getRequestDispatcher("registerInfo.jsp").forward(request, response);
} catch (Exception e)
{
e.printStackTrace();
}
}
}
那边也没有测试的结果图,我猜肯定是挂了。CSDN毛病特别多,作者甚至不能预览自己写的东西。提交之后在审核的过程中,点击自己的文章就是报错,所以我都是写完就丢那
基于jsp+servlet+javabean的MVC模式简单应用的更多相关文章
- Jsp+Servlet+JavaBean经典MVC模式理解
MVC模式目的(实现Web系统的职能分工). 在Java EE中,Jsp+Servlet+JavaBean算是里面经典的模式,是初学者必备的知识技能.M, Model(模型)实现系统的业务逻辑 1.通 ...
- (jsp+servlet+javabean )MVC架构
MVC是三个单词的缩写,这三个单词分别为:模型.视图和控制. 使用的MVC的目的:在于将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式.比如Windows系统资源管理器文件夹内容的显示方 ...
- 2017.11.21 基于JSP+Servlet+JavaBean实现复数运算(二)
代码的实现 最基本的MVC模式 //input.jsp 输入界面 <%@ page language="java" import="java.util.*" ...
- 2017.11.20 基于JSP+Servlet+JavaBean实现复数运算(一)
(7)在Servlet中使用JavaBean Servlet和JavaBean都是类,在Servlet中使用JavaBean有两种方式: 1.在一个Servlet中单独使用JavaBean 一般完成的 ...
- 深入浅出Java MVC(Model View Controller) ---- (JSP + servlet + javabean实例)
在DRP中终于接触到了MVC,感触是确实这样的架构系统灵活性不少,现在感触最深的就是使用tomcat作为服务器发布比IIS好多了,起码发布很简单,使用起来方便. 首先来简单的学习一下MVC的基础知识, ...
- JSP中使用的模式——JSP+Servlet+JavaBean
上一篇博文写到模式一:JSP+JavaBean 链接地址:http://wxmimperio.coding.io/?p=155 JSP中两种模式的总结 链接地址:http://wxmimperio.c ...
- MVC jsp+servlet+javabean 连接Mysql数据库測试demo
本文介绍的是怎样使用MVC架构去实现jsp+servlet+javabean连接数据库 首先我们应该了解什么是MVC: MVC包含三个部分 : ①View:由各种JSP页面组成. ②Controlle ...
- 基于JSP+SERVLET的新闻发布系统(一)
本系统使用的是基于JSP+SERVLET+TOMCAT6 数据库使用的是MYSQL IDE是MYECLIPSE8.5,页面编辑使用的是百度的ueditor,比较适合咱国人 采用MVC模式,使用的关键技 ...
- 基于jsp+servlet图书管理系统之后台万能模板
前奏: 刚开始接触博客园写博客,就是写写平时学的基础知识,慢慢发现大神写的博客思路很清晰,知识很丰富,非常又价值,反思自己写的,顿时感觉非常low,有相当长一段时间没有分享自己的知识.于是静下心来钻研 ...
随机推荐
- [C++]智能指针的实现与使用
智能指针 智能指针是当我们在使用对象时,有时会把对象的内存分配在堆上忘记释放,导致内存泄露,并且当多个指针共享同一个对象的内存时,容易出现重复释放内存,导致错误. 我们针对所需要共享的对象,手动完成一 ...
- vue使用中的随笔
在vue中vue-router配置的路径默认有"#"号,虽然无伤大雅,但是很多客户都不想看到,所以在初始配置路由的时候加上下面一句代码就可以了 mode:'history', 路径 ...
- Eclipse详细设置护眼背景色和字体颜色并导出
Eclipse详细设置护眼背景色和字体颜色并导出 Eclipse是一款码农们喜闻乐见的集成开发平台,但是其默认的主题和惨白的背景色实在是太刺激眼球了.下面,将给大家详细介绍如何设置成护眼主题的方法,也 ...
- java反射机制(1)
百度百科: java 反射机制:JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意方法和属性:这种动态获取信息以及动态调用对象方 ...
- [补档]暑假集训D7总结
刷题 上午刷了一上午的网络流 (md建图快建吐了),然后就搞了一个网络流的索引= = (实在看不下去那篇大长文了啊喂),然后发现都是水题= =,我还瞎××乱刷 下午--听说我要刷平衡树? Blog 日 ...
- Uva140 Bandwidth 全排列+生成测试法+剪枝
参考过仰望高端玩家的小清新的代码... 思路:1.按字典序对输入的字符串抽取字符,id[字母]=编号,id[编号]=字母,形成双射 2.邻接表用两个vector存储,存储相邻关系 ...
- python常用模块(2)
之前学了两个常用的模块collections和re模块今天我们接着学习其他几个常用模块.都是比较常用的之前的学习或多或少也有所接触比如说时间模块等. 预习: 写一个验证码 首先 要有数字 其次 要有字 ...
- Unity 特殊文件夹 Assets Resources StreamingAssets Editor Plugins......
AssetsAssets文件夹是unity项目中放置游戏资源的主文件夹. 该文件夹中的内容将直接反应在编辑器的Project视口中.许多系统API基于该文件夹路径. ResourcesUnity允许你 ...
- promise处理多个相互依赖的异步请求
在项目中,经常会遇到多个相互依赖的异步请求.如有a,b,c三个ajax请求,b需要依赖a返回的数据,c又需要a和b请求返回的数据.如果采用请求嵌套请求的方式自然是不可取的.导致代码难以维护,如何请求很 ...
- 一次关于mongodb性能踩坑的总结
发现性能问题 上一次导入数据后,发现系统十分的卡顿,但是才仅仅1000多条数据而已,怎么会让系统变得如何的卡顿呢?于是我开始走在排查系统卡顿的原因的道路上. 首先,先定位问题是出现在前端上还是后端上. ...