之前一段时间一直忙于毕业设计,也没有空学习了,本篇继续学习。

本篇将开始学习java web下使用servlet下来操作数据库,并展示到界面上的使用方法。

新建工程ServletMvc001。

目录结构如下:

web.xml

 <?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID" version="3.0">
<display-name>ServletMvc001</display-name>
<welcome-file-list>
<welcome-file>logon.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>logOnServlet</servlet-name>
<servlet-class>com.dx.javamvc.servlets.LogOnServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>logOnServlet</servlet-name>
<url-pattern>/LogOnServlet</url-pattern>
</servlet-mapping>
</web-app>

logon.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>Insert title here</title>
</head>
<body>
<form name="form1" id="form1" method="get" action="LogOnServlet">
<input type="submit" id="btnOk" name="btnOk" value="提交" />
</form>
</body>
</html>

showPerfileInfo.jsp

 <%@page import="com.mysql.fabric.Response"%>
<%@page import="java.util.List" %>
<%@page import="com.dx.javamvc.entity.User" %>
<%@ 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>Insert title here</title>
</head>
<body>
<% List<User> userItem= (List<User>)request.getAttribute("UserItems"); %>
<%for(User user :userItem){
out.write("llddd");
%>
<%=user.getId() %><br/>
<%=user.getUserName() %><br/>
<%=user.getPassword() %><br/>
<%
} %>
</body>
</html>

jdbc.properties

 DriverClass=com.mysql.jdbc.Driver

 JdbcUrl=jdbc:mysql://localhost:3306/servletmvc001

 UserName=root

 Password=123456

DbConfiguration.java

 package com.dx.javamvc.configuration;

 import java.io.*;
import java.net.URISyntaxException;
import java.util.*; public class DbConfiguration {
private static final String FILENAME = "jdbc.properties";
private static String userName = null;
private static String password = null;
private static String jdbcUrl = null;
private static String driverClass = null; public DbConfiguration() {
Properties property = new Properties(); try {
String path = this.getClass().getClassLoader().getResource("").toURI().getPath();
FileInputStream inStream = new FileInputStream(new File(path + FILENAME));
property.load(inStream);
setUserName(property.getProperty("UserName"));
setPassword(property.getProperty("Password"));
setJdbcUrl(property.getProperty("JdbcUrl"));
setDriverClass(property.getProperty("DriverClass"));
} catch (URISyntaxException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} public String getUserName() {
return userName;
} private void setUserName(String userName) {
DbConfiguration.userName = userName;
} public String getPassword() {
return password;
} private void setPassword(String password) {
DbConfiguration.password = password;
} public String getJdbcUrl() {
return jdbcUrl;
} private void setJdbcUrl(String jdbcUrl) {
DbConfiguration.jdbcUrl = jdbcUrl;
} public String getDriverClass() {
return driverClass;
} private void setDriverClass(String driverClass) {
DbConfiguration.driverClass = driverClass;
} }

SexType.java

 package com.dx.javamvc.entity;

 public enum SexType {
Mail(0), Femail(1); private int value; private SexType(int value) {
setValue(value);
} public int getValue() {
return value;
} public void setValue(int value) {
this.value = value;
} public static SexType valueOf(int value) {
SexType sexType;
switch (value) {
case 1:
sexType = SexType.Femail;
break;
default:
sexType = SexType.Mail;
break;
} return sexType;
}
}

User.java

 package com.dx.javamvc.entity;

 import java.util.Date;

 public class User {
private int id;
private String userName;
private String password;
private SexType sex;
private Date createDate; public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} 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 SexType getSex() {
return sex;
} public void setSex(SexType sex) {
this.sex = sex;
} public Date getCreateDate() {
return createDate;
} public void setCreateDate(Date createDate) {
this.createDate = createDate;
}
}

DbUtil.java

 package com.dx.javamvc.utils;

 import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException; import com.dx.javamvc.configuration.DbConfiguration;
import com.dx.javamvc.types.IExecuteQueryAction;
import com.dx.javamvc.types.IPreparedStatementAction; public class DbUtil {
public static void executeQuery(String sql, IPreparedStatementAction preparedStatementAction,
IExecuteQueryAction executeQueryAction) {
Connection connection = null;
PreparedStatement preparedStatement = null;
ResultSet resultSet = null; DbConfiguration configuration=new DbConfiguration();
String driverClass = configuration.getDriverClass();
String jdbcUrl = configuration.getJdbcUrl();
String userName = configuration.getUserName();
String password = configuration.getPassword(); try {
Class.forName(driverClass); connection = DriverManager.getConnection(jdbcUrl, userName, password);
preparedStatement = connection.prepareStatement(sql); if (preparedStatementAction != null) {
preparedStatementAction.action(preparedStatement);
} resultSet = preparedStatement.executeQuery(); if (executeQueryAction != null) {
executeQueryAction.action(resultSet);
}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
if (resultSet != null) {
try {
resultSet.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (preparedStatement != null) {
try {
preparedStatement.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (connection != null) {
try {
connection.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
} } }

IExecuteQueryAction.java

 package com.dx.javamvc.types;

 import java.sql.ResultSet;
import java.sql.SQLException; public interface IExecuteQueryAction {
void action(ResultSet result) throws SQLException;
}

IPreparedStatementAction.java

 package com.dx.javamvc.types;

 import java.sql.PreparedStatement;
import java.sql.SQLException; public interface IPreparedStatementAction {
void action(PreparedStatement preparedStatement) throws SQLException;
}

UserDao.java

 package com.dx.javamvc.domain;

 import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List; import com.dx.javamvc.entity.SexType;
import com.dx.javamvc.entity.User;
import com.dx.javamvc.types.IPreparedStatementAction;
import com.dx.javamvc.types.IExecuteQueryAction;
import com.dx.javamvc.utils.DbUtil; public class UserDao {
public List<User> getUserByUserName(final String userName) {
final List<User> userItems = new ArrayList<User>(); String sql = "Select * From User Where Name=?"; IPreparedStatementAction preparedStatementAction = new IPreparedStatementAction() {
@Override
public void action(PreparedStatement preparedStatement) throws SQLException {
preparedStatement.setString(1, userName);
}
}; IExecuteQueryAction executeQueryAction = new IExecuteQueryAction() {
@Override
public void action(ResultSet result) throws SQLException {
try {
while (result.next()) {
User user = new User(); user.setId(result.getInt("Id"));
user.setUserName(result.getString("Name"));
user.setPassword(result.getString("Password"));
user.setSex(SexType.valueOf(result.getInt("Sex")));
user.setCreateDate(result.getDate("CreateDate")); userItems.add(user);
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}; DbUtil.executeQuery(sql, preparedStatementAction, executeQueryAction); return userItems; }
}

LogOnServlet.java

 package com.dx.javamvc.servlets;

 import java.io.IOException;
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.dx.javamvc.domain.UserDao;
import com.dx.javamvc.entity.User; public class LogOnServlet extends HttpServlet {
private static final long serialVersionUID = -8807878351076369807L;
private static final UserDao userDao = new UserDao(); @Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
List<User> userItems = userDao.getUserByUserName("yy3b2007com");
req.setAttribute("UserItems", userItems);
req.getRequestDispatcher("/showPerfileInfo.jsp").forward(req, resp);
}
}

Java Servlet(七):JavaWeb MVC 操作(jdk7+tomcat7+eclipse)的更多相关文章

  1. Java Servlet(一):创建工程(jdk7+tomcat7+eclipse)

    本篇文件主要记录下怎么在jdk7+tomcat7下,使用eclipse创建并运行一个servlet工程. 安装具体步骤从网上搜索就可以找到,这里不再赘述. 在eclipse中切换到j2ee下, 从导航 ...

  2. Java Servlet(四):Servlet接口service工作(ServletRequest,ServletResponse对象)(jdk7+tomcat7+eclipse)

    本篇将会记录,Servlet接收客户端传递来的参数信息,并返回信息使用的对象,及这些对象的函数相关用法. 还是在java ee工程中进行操作,在WebContent目录下创建一个login.jsp文件 ...

  3. Java Servlet(六):HttpServlet实现原理(jdk7+tomcat7+eclipse)

    本篇记录了HttpServlet的实现过程,主要讲述了如何依赖Servlet,GenericServlet实现的原理. HttpServlet实现过程:1.是一个Servlet,继承自GenericS ...

  4. JavaWeb学习记录(七)——MVC操作数据库增删改查与分页功能

    一.分页工具类 package blank.util;import java.util.List; import org.springframework.jdbc.core.JdbcTemplate; ...

  5. Java Servlet(五):GenericServlet与Servlet、HttpServlet之间的关系(jdk7+tomcat7+eclipse)

    本篇主要记录下,对GenericServlet的作用理解,及其与Servlet/HttpServlet之间的关系. 示例完成业务: 1.新建一个login.jsp页面,要求改页面能输入username ...

  6. Java Servlet(二):servlet配置及生命周期相关(jdk7+tomcat7+eclipse)

    该篇文章记录了Servlet配置相关用法及Servlet在Servlet容器中生命周期方法. Tomcat是一个Servlet容器: 1.Servlet容器管理了Servlet的整个生命周期,并调用s ...

  7. Java Servlet(十一):一个servlet被10个浏览器客户端访问时会创建几个servlet实例?

    一般Servlet只初始化一次(只有一个实例).对于更多的客户端请求,Server创建新的请求和响应对象,仍然激活此Servlet的service()方法,将这两个对象作为参数传递给该方法.如此重复以 ...

  8. Java Spring mvc 操作 Redis 及 Redis 集群

    本文原创,转载请注明:http://www.cnblogs.com/fengzheng/p/5941953.html 关于 Redis 集群搭建可以参考我的另一篇文章 Redis集群搭建与简单使用 R ...

  9. JavaWeb之Java Servlet完全教程(转)

    Servlet 是一些遵从Java Servlet API的Java类,这些Java类可以响应请求.尽管Servlet可以响应任意类型的请求,但是它们使用最广泛的是响应web方面的请求. Servle ...

随机推荐

  1. HDU-敌兵布阵

    Problem Description C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了.A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任 ...

  2. phpunit测试成功 phpunit测试实践代码

    16:12 2015/12/8phpunit测试成功,代码写在www目录下,以类名命名代码文件,我的文件名为 ArrayTest.php,类名为ArrayTest,内部写了简单的测试代码:<?p ...

  3. BZOJ1485: [HNOI2009]有趣的数列

    Description 我们称一个长度为2n的数列是有趣的,当且仅当该数列满足以下三个条件: (1)它是从1到2n共2n个整数的一个排列{ai}: (2)所有的奇数项满足a1<a3<…&l ...

  4. 百度SDK的使用第一天

    //获取自定义的经纬度上添加位置气泡,大头钉 BMKPointAnnotation* annotation = [[BMKPointAnnotation alloc]init]; CLLocation ...

  5. 应对Memcached缓存失效,导致高并发查询DB的四种思路(l转)

    当Memcached缓存失效时,容易出现高并发的查询DB,导致DB压力骤然上升. 这篇blog主要是探讨如何在缓存将要失效时,及时地更新缓存,而不是如何在缓存失效之后,如何防止高并发的DB查询. 解决 ...

  6. Trie字典树 动态内存

    Trie字典树 #include "stdio.h" #include "iostream" #include "malloc.h" #in ...

  7. [CareerCup] 17.8 Contiguous Sequence with Largest Sum 连续子序列之和最大

    17.8 You are given an array of integers (both positive and negative). Find the contiguous sequence w ...

  8. Daily Scrum 10.30

    由于最近一段时间吴文会同学身体欠安,经过讨论我们对任务做了一下调整,暂时由罗洪运同学接手界面部分的开发.部分进度较快的同学的任务已经快要完成,工作重点也会转为整体开发和协助其他同学开发. 下面是今天的 ...

  9. IE中的CSS3不完全兼容方案

    摘要: Internet Explorer,其本身也是足够强大的.IE特有的技术可以很好的实现一些CSS3的效果. 到Internet Explorer 8为止,IE系列是不支持CSS3的.在IE中要 ...

  10. echart 扩展地图不显示问题

    今天写项目需要一个安徽地图,但echart自带的安徽地图还是老版的,仍有巢湖市,但客户要求不能有,只好重新找, 后发现ECharts 地图数据在线生成工具 :http://ecomfe.github. ...