1、JSP编程:
(1)
<%!String[] receiverName = { "hanyongmeng", "huangyun" };
String[] receiverAddress = { "北京市昌平区金燕龙办公楼", "北京市昌平区建材城西路金燕龙办公楼" };
double[] money = { 44.5, 59 };
String[] receiverPhone = { "15207545526", "13041019968" };%>
<table border="1">
<tr>
<td width="120" align="center">收件人姓名</td>
<td width="380" align="center">地 址</td>
<td width="80" align="center">价格</td>
<td width="180" align="center">联系电话</td>
</tr>
<%
for (int i = 0; i < receiverName.length; i++) {
out.println("<tr><td align='center'>" + receiverName[i]
+ "</td><td align='center'>"+ receiverAddress[i]
+ "</td><td align='center'>" + money[i]
+ "</td><td align='center'>"+ receiverPhone[i] + "</td></tr>");
}
%>
(2)
<form action="show.jsp" method="post" >
用户名:<input type="text" name="uname" /><br/>
密码:<input type="password" name="upwd" /><br/>
兴趣:<br/>
足球<input type="checkbox" name="hobby" value="足球"/>
篮球<input type="checkbox" name="hobby" value="篮球"/>
羽毛球<input type="checkbox" name="hobby" value="羽毛球"/><br/>
<input type="submit" value="注册" /> </form>
<% request.setCharacterEncoding("UTF-8");
String name = request.getParameter("uname");
String pwd = request.getParameter("upwd");
String[] hobbies = request.getParameterValues("hobby"); %>
您注册的信息如下:<br/>
用户名:<%=name %> <br/>
密码:<%=pwd %> <br/>
爱好: <% if(hobbies != null)
{
for(int i=0 ; i<hobbies.length ;i++)
{
out.print(hobbies[i]+" ");
}
} %>
(3)
<form action="check.jsp" method="post" >
用户名:<input type="text" name="uname" /><br/>
密码:<input type="password" name="upwd" /><br/>
<input type="submit" value="登录" /> </form>
<% request.setCharacterEncoding("UTF-8");
String name = request.getParameter("uname");
String pwd = request.getParameter("upwd");
if(name.equals("张三") && pwd.equals("abc"))
{ response.sendRedirect("success.jsp");
}
%>
登录成功!<br/>
欢迎您:<br/>
<% String name = request.getParameter("uname");
out.print(name); %>
2、javaBean(利用DBUtil.java和JDBC技术)
(1)
<p>当前用户:${sessionScope.user.getName()}</p>
<table border="1">
<%
String sql = "select * from orders";
ResultSet rs = DBUtil.executeQuery(sql, null);
%>
<tr>
<td width="120" align="center">收件人姓名</td>
<td width="380" align="center">地 址</td>
<td width="80" align="center">价格</td>
<td width="180" align="center">联系电话</td>
</tr>
<%
while (rs.next()) {
out.println("<tr><td align='center'>"
+ rs.getString("receiverName") + "</td><td align='center'>"
+ rs.getString("receiverAddress") + "</td><td align='center'>"
+ rs.getDouble("money") + "</td><td align='center'>"
+ rs.getString("receiverPhone") + "</td></tr>");
}
%>
</table>
(2)
<%
request.setCharacterEncoding("UTF-8");
String username = request.getParameter("uname");
String password = request.getParameter("upwd");
Connection con = null; PreparedStatement pstmt = null;
try {
Class.forName("oracle.jdbc.OracleDriver");
con=DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:XE", "system", "sa");
String loginSql = "insert into login(username,password) values(?,?)";
pstmt = con.prepareStatement(loginSql);
pstmt.setString(1,username); pstmt.setString(2, password);
pstmt.executeUpdate(); out.println("<h1>注册成功!</h>");
}catch (SQLException e)
{ e.printStackTrace(); }
%>
(3)
public void addLoginInfo(LoginInfo loginInfo) {
Connection con = null;
Statement stmt = null;
try {
Class.forName("com.mysql.jdbc.Driver");
con=DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb?useUnicode=true&characterEncoding=UTF8", "root", "123456");
stmt = con.createStatement();
String loginSql = "insert into login(name,password)values ('" + loginInfo.getName() + "','"+ loginInfo.getPassword() + "')"; stmt.executeUpdate(loginSql);
System.out.println("<h1>注册成功!</h>");
}catch (Exception e) { e.printStackTrace();
}finally { try { stmt.close(); con.close();
}catch (SQLException e) { e.printStackTrace(); } } }
<% request.setCharacterEncoding("UTF-8");
String name = request.getParameter("uname");
String password = request.getParameter("upwd");
LoginInfo loginInfo = new LoginInfo();
loginInfo.setName(name);
loginInfo.setPassword(password);
LoginControl loginControl = new LoginControl();
loginControl.addLoginInfo(loginInfo); %>
3、MVC架构
(1)
<form action="LoginServlet" method="post" >
用户名<input type="text" name="name"/><br/>
密 码<input type="password" name="pwd"/><br/>
<input type="submit" value="登录" />
</form>
package cn.qztc.wxm.mvc;
import java.io.*;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
import cn.qztc.wxm.entity.User;
import cn.qztc.wxm.util.DBUtil;
@WebServlet("/LoginServlet")
public class LoginServlet extends HttpServlet {
public void doGet(HttpServletRequest request,HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
String name = request.getParameter("name");
String password = request.getParameter("pwd");
String sql="select * from user where name=? and password=?";
System.out.println(name);
ResultSet rs=DBUtil.executeQuery(sql,new Object[]{name,password});
try {
if (rs.next()) {
User user = new User();
user.setName(name);
user.setPassword(password);
request.getSession().setAttribute("user", user);
System.out.println(user);
response.sendRedirect("jspjavabean.jsp");
}
else
response.sendRedirect("login.jsp");
} catch (SQLException e) {
e.printStackTrace();
}
}
}
<p>当前用户:${sessionScope.user.getName()}</p>
(2)
<form action="RegisterServlet" method="post" >
用户名:<input type="text" name="uname" /><br/>
密码:<input type="password" name="upwd" /><br/>
年龄:<input type="text" name="uage" /><br/>
地址:<input type="text" name="uaddress" /><br/>
<input type="submit" value="注册" />
</form>
protected void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
HttpSession session = request.getSession();
String name = request.getParameter("uname");
String pwd = request.getParameter("upwd");
String uage = request.getParameter("uage");
int age = Integer.parseInt(uage);
String address = request.getParameter("uaddress");
UserInfo userInfo = new UserInfo(name, pwd, age, address);
UserInfoDao userInfoDao = new UserInfoDao();
userInfoDao.addRegisterInfo(userInfo);
session.setAttribute("userInfo", userInfo);
request.getRequestDispatcher("welcome.jsp").forward(request, response);
}
}
欢迎您<%=((UserInfo)session.getAttribute("userInfo")).getUname()%>
4、三层架构技术(DBUtil)
package cn.qztc.wxm.threetier.servlet;
import java.io.IOException;
import java.util.List;
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 cn.qztc.wxm.entity.Orders;
import cn.qztc.wxm.threetier.service.OrdersService;
@WebServlet("/QueryAllOrdersServlet")
public class QueryAllOrdersServlet extends HttpServlet
{
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
this.doPost(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException
{
request.setCharacterEncoding("UTF-8");
OrdersService ordersService = new OrdersService();
List<Orders> orderslist = ordersService.queryAllOrderslist();
System.out.println(orderslist);
request.setAttribute("orderslist", orderslist);
request.getRequestDispatcher("index.jsp").forward(request, response);
}
}
<table border="1">
<tr>
<td width="120" align="center">收件人姓名</td>
<td width="380" align="center">地 址</td>
<td width="80" align="center">价格</td>
<td width="180" align="center">联系电话</td>
</tr>
<%
List<Orders> orderslist = (List<Orders>) request.getAttribute("orderslist");
if (orderslist != null)
{
for (Orders orders : orderslist)
{
%>
<tr>
<td><%=orders.getReceiverName()%></td>
<td><%=orders.getReceiverAddress()%></td>
<td><%=orders.getMoney()%></td>
<td><%=orders.getReceiverPhone()%></td></tr>
<%
}
}
%>
</table>
OrderDao.java:
public class OrdersDao {
public boolean addOrders(Orders orders) {
Connection conn = null;
PreparedStatement pstmt = null;
boolean flag = true;
try {
conn = DBUtil.getConnection();
String sql = "insert into orders(receiverName,receiverAddress,money,receiverPhone) values(?,?,?,?)";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, orders.getReceiverName());
pstmt.setString(2, orders.getReceiverAddress());
pstmt.setDouble(3, orders.getMoney());
pstmt.setString(4, orders.getReceiverPhone());
pstmt.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
flag = false;
} finally {
try {
if (pstmt != null)
pstmt.close();
if (conn != null)
conn.close();
} catch (SQLException e) {
e.printStackTrace();
flag = false;
}
}
return flag;
}
public boolean deleteOrdersByNo(int id) {
Connection conn = null;
PreparedStatement pstmt = null;
boolean flag = true;
try {
conn = DBUtil.getConnection();
String sql = "delete from orders where id = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, id);
pstmt.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
flag = false;
} finally {
try {
if (pstmt != null)
pstmt.close();
if (conn != null)
conn.close();
} catch (SQLException e) {
e.printStackTrace();
flag = false;
}
}
return flag;
}
public boolean updateOrders(Orders orders, int id) {
Connection conn = null;
PreparedStatement pstmt = null;
boolean flag = true;
try {
conn = DBUtil.getConnection();
String sql = "update orders set receiverName = ?,receiverAddress = ? ,money=? ,receiverPhone=? where id = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, orders.getReceiverName());
pstmt.setString(2, orders.getReceiverAddress());
pstmt.setDouble(3, orders.getMoney());
pstmt.setString(4, orders.getReceiverPhone());
pstmt.setInt(5, id);
pstmt.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
flag = false;
} finally {
try {
if (pstmt != null)
pstmt.close();
if (conn != null)
conn.close();
} catch (SQLException e) {
e.printStackTrace();
flag = false;
}
}
return flag;
}
public Orders queryOrdersByNo(int id) {
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
Orders orders = null;
try {
conn = DBUtil.getConnection();
String sql = "select receiverName,receiverAddress,money,receiverPhone from orders where id = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, id);
rs = pstmt.executeQuery();
if (rs.next()) {
String receiverName = rs.getString("receiverName");
String receiverAddress = rs.getString("receiverAddress");
double money = rs.getDouble("money");
String receiverPhone = rs.getString("receiverPhone");
orders = new Orders(receiverName,receiverAddress,money,receiverPhone);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (rs != null)
rs.close();
if (pstmt != null)
pstmt.close();
if (conn != null)
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
return orders;
}
public List<Orders> queryAllOrderslist() {
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
List<Orders> orderslist = new ArrayList<Orders>();
try {
conn = DBUtil.getConnection();
String sql = "select id,receiverName,receiverAddress,money,receiverPhone from orders";
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
while (rs.next()) {
int id = rs.getInt("id");
String receiverName = rs.getString("receiverName");
String receiverAddress = rs.getString("receiverAddress");
double money = rs.getDouble("money");
String receiverPhone = rs.getString("receiverPhone");
Orders orders = new Orders(id, receiverName,receiverAddress,money,receiverPhone);
orderslist.add(orders);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (rs != null)
rs.close();
if (pstmt != null)
pstmt.close();
if (conn != null)
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
return orderslist;
}
public boolean isExistByNo(int id) {
boolean isExist = false;
Orders orders = this.queryOrdersByNo(id);
isExist = (orders == null) ? false : true;
return isExist;
}
}
OrderService.java:
public class OrdersService {
OrdersDao ordersDao = new OrdersDao();
public boolean addOrders(Orders orders)
{
if (ordersDao.isExistByNo(orders.getId()))
{
System.out.println("此订单已经存在,不能重复增加!");
return false;
}
return ordersDao.addOrders(orders);
}
public boolean deleteOrdersByNo(int id)
{
if (!ordersDao.isExistByNo(id))
{
System.out.println("查无此订单,无法删除!");
return false;
}
return ordersDao.deleteOrdersByNo(id);
}
public boolean updateOrders(Orders orders, int id)
{
if (!ordersDao.isExistByNo(id))
{
System.out.println("查无此订单,无法修改!");
return false;
}
return ordersDao.updateOrders(orders, id);
}
public Orders queryOrdersByNo(int id)
{
return ordersDao.queryOrdersByNo(id);
}
public List<Orders> queryAllOrderslist()
{
return ordersDao.queryAllOrderslist();
}
public boolean isExistByNo(int id)
{
return ordersDao.isExistByNo(id);
}
}
5、三层架构技术+连接池+DBUtil工具实现
(1)
<form action="AddOrdersServlet" method="post">
收件人姓名:<input type="text" name="receiverName" /><br/>
地 址:<input type="text" name="receiverAddress" /><br/>
价 格:<input type="text" name="money" /><br/>
联系电话:<input type="text" name="receiverPhone" /><br/>
<input type="submit" value="增加" /><br/>
</form>
protected void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
String receiverName = request.getParameter("receiverName");
String receiverAddress = request.getParameter("receiverAddress");
double money = Double.parseDouble(request.getParameter("money"));
String receiverPhone = request.getParameter("receiverPhone");
Orders orders =new Orders(receiverName,receiverAddress,money,receiverPhone);
OrdersDButilService ordersDButilService = new OrdersDButilService();
boolean result = ordersDButilService.addOrders(orders);
if (!result)
{
request.setAttribute("addError", "error");
request.getRequestDispatcher("addOrders.jsp").forward(request, response);
}else
{
response.sendRedirect("QueryAllOrdersServlet");
}
}
连接池:
public class C3p0Utils {
private static DataSource ds;
static {
ds = new ComboPooledDataSource();
}
public static DataSource getDataSource() {
return ds;
}
}
OrdersDButilService.java:
public class OrdersDButilService {
OrdersDButilDao ordersDButilDao = new OrdersDButilDao();
public boolean addOrders(Orders orders)
{
try {
if (ordersDButilDao.isExistByNo(orders.getId()))
{
System.out.println("此订单已经存在,不能重复增加!");
return false;
}
} catch (SQLException e) {
e.printStackTrace();
}
try {
return ordersDButilDao.insert(orders);
} catch (SQLException e) {
e.printStackTrace();
}
return false;
}
public boolean deleteOrdersByNo(int id)
{
try {
if (!ordersDButilDao.isExistByNo(id))
{
System.out.println("查无此订单,无法删除!");
return false;
}
} catch (SQLException e1) {
e1.printStackTrace();
}
try {
return ordersDButilDao.delete(id);
} catch (SQLException e) {
e.printStackTrace();
}
return false;
}
public boolean updateOrders(Orders orders, int id)
{
try {
if (!ordersDButilDao.isExistByNo(id))
{
System.out.println("查无此订单,无法修改!");
return false;
}
} catch (SQLException e1) {
e1.printStackTrace();
}
try {
return ordersDButilDao.update(orders);
} catch (SQLException e) {
e.printStackTrace();
}
return false;
}
public Orders queryOrdersByNo(int id)
{
try {
return ordersDButilDao.find(id);
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
public List<Orders> queryAllOrderslist()
{
try {
return ordersDButilDao.findAll();
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
public boolean isExistByNo(int id)
{ try {
return ordersDButilDao.isExistByNo(id);
} catch (SQLException e) {
e.printStackTrace();
}
return false;
}
}
OrdersDButilDao.java:
public class OrdersDButilDao {
public List findAll() throws SQLException {
QueryRunner runner = new QueryRunner(C3p0Utils.getDataSource());
String sql = "select * from orders";
List list = (List) runner.query(sql,
new BeanListHandler(Orders.class));
return list;
}
public Orders find(int id) throws SQLException {
QueryRunner runner = new QueryRunner(C3p0Utils.getDataSource());
String sql = "select * from orders where id=?";
Orders orders = (Orders) runner.query(sql, new BeanHandler(Orders.class), new Object[] { id });
return orders;
}
public Boolean insert(Orders orders) throws SQLException {
QueryRunner runner = new QueryRunner(C3p0Utils.getDataSource());
String sql = "insert into orders (receiverName,receiverAddress,money,receiverPhone) values (?,?,?,?)";
Int num =runner.update(sql,newObject[]{orders.getReceiverName(),
orders.getReceiverAddress(),orders.getMoney(),orders.getReceiverPhone()});
if (num > 0)
return true;
return false;
}
public Boolean update(Orders orders) throws SQLException {
QueryRunner runner = new QueryRunner(C3p0Utils.getDataSource());
String sql = "update orders set receiverName=?,receiverAddress=?,money=?,receiverPhone=? where id=?";
int num = runner.update(sql, new Object[] { orders.getReceiverName(),orders.getReceiverAddress(),orders.getMoney(),orders.getReceiverPhone(),orders.getId() });
if (num > 0)
return true;
return false;
}
public Boolean delete(int id) throws SQLException {
QueryRunner runner = new QueryRunner(C3p0Utils.getDataSource());
String sql = "delete from orders where id=?";
int num = runner.update(sql, id);
if (num > 0)
return true;
return false;
}
public boolean isExistByNo(int id) throws SQLException {
boolean isExist = false;
Orders orders = this.find(id);
isExist = (orders == null) ? false : true;
return isExist;
}
}
(2)
public class Example02 {
public static DataSource ds = null;
static {
Properties prop = new Properties();
try {
InputStream in = new Example02().getClass().getClassLoader()
.getResourceAsStream("dbcpconfig.properties");
prop.load(in);
ds = BasicDataSourceFactory.createDataSource(prop);
} catch (Exception e) {
throw new ExceptionInInitializerError(e);
}
}
public static void main(String[] args) throws SQLException {
Connection conn = ds.getConnection();
DatabaseMetaData metaData = conn.getMetaData();
System.out.println(metaData.getURL()
+",UserName="+metaData.getUserName()
+","+metaData.getDriverName());
}
}
(3)
public class Example01 {
public static DataSource ds = null;
static {
BasicDataSource bds = new BasicDataSource();
bds.setDriverClassName("com.mysql.jdbc.Driver");
bds.setUrl("jdbc:mysql://localhost:3306/jdbc");
bds.setUsername("root");
bds.setPassword("itcast");
bds.setInitialSize(5);
bds.setMaxActive(5);
ds = bds;
}
public static void main(String[] args) throws SQLException {
Connection conn = ds.getConnection();
DatabaseMetaData metaData = conn.getMetaData();
System.out.println(metaData.getURL()
+",UserName="+metaData.getUserName()
+","+metaData.getDriverName());
}
}