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

本篇将开始学习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. Android -- ImageSwitch和Gallery 混合使用

    1. 实现效果

  2. JavaScript_JS判断客户端是否是iOS或者Android

    通过判断浏览器的userAgent,用正则来判断是否是ios和Android客户端.代码如下: <script type="text/javascript"> var ...

  3. golang channel 用法转的

    一.Golang并发基础理论 Golang在并发设计方面参考了C.A.R Hoare的CSP,即Communicating Sequential Processes并发模型理论.但就像John Gra ...

  4. C# using的一些事

    一.using释放资源 using不可以释放所有的对象,原因如下: 1.using可以主动释放的对象都需要实现IDisable接口. 2.即使都实现了IDisable接口,也没有必要全部使用using ...

  5. java输入一个字符串,打印出该字符串中字符的所有排列,随机打乱排序

    import java.util.ArrayList;import java.util.Collections;import java.util.List; public class Test7{   ...

  6. Daily Scrum 10.24

    昨天我们的工作已经全面开始了,本来想等今天(25号)看那个燃尽图和燃速图能不能出来,结果还是没有,就先把我们的Task统计贴上来吧. 今天的Task统计: 至于燃尽图和燃速图的问题已经发老师邮件提问了 ...

  7. log4net 添加自定义日志到数据库

    添加操作日志到数据库举例: (一)建立数据库的操作日志表,如下我建立了一个简单的日志表 (二)配置文件中的配置如下 <log4net> <!--错误日志记录数据库--> < ...

  8. docker pipework

    #!/bin/bash #auto install docker and Create VM #Define PATH Varablies IPADDR=`ifconfig |grep "B ...

  9. Spinner的深入学习

    简介: spinner是一个列表选择框,会在用户选择后,展示一个列表供用户进行选择.Spinner是ViewGroup的间接子类,它和其他的Android控件一样,数据需要使用Adapter进行封装. ...

  10. poj1061-青蛙的约会(扩展欧几里德算法)

    一,题意: 两个青蛙在赤道上跳跃,走环路.起始位置分别为x,y. 每次跳跃距离分别为m,n.赤道长度为L.两青蛙跳跃方向与次数相同的情况下, 问两青蛙是否有方法跳跃到同一点.输出最少跳跃次数.二,思路 ...