Servlet基础【SimpleDemo】

本文介绍了一个简单的单表操作案例,展示了如何通过BIZ层处理业务逻辑,DAO层执行SQL语句来操作数据库,SERVLET接收并处理HTTP请求,以及使用JSP页面展示数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

单表操作范例:

BIZ主要处理业务

DAO主要操作数据库--即执行SQL

VO为POJO用于数据库的打包

SERVLET用于处理访问请求

*.jsp用于显示数据的界面--即嵌入Java的HTML

SERVLET代码:

public class OrderServlet extends HttpServlet {
 
 
		public void doGet(HttpServletRequest request, HttpServletResponse response)
				throws ServletException, IOException {
			this.doPost(request,response);
		}

		public void doPost(HttpServletRequest request, HttpServletResponse response)
				throws ServletException, IOException {
		    String sql =  "1=1" ;
		    OrderBiz biz=new OrderBiz();
		    List _l=biz.getAllOrder(sql);
			request.setAttribute("OrderList",_l);
	        String url="/WEB-INF/jsp/OrderList.jsp";
	    	request.getRequestDispatcher(url).forward(request,response);
	     
		}
		 
}

BIZ代码:

public class OrderBiz {
	
		//获取定单列表
		public List getAllOrder(String sql){
			List _l = new ArrayList();
			//新建数据库对象
			DBConnection dbc = new DBConnection();
			if(dbc.getConnect()){
				//获取数据库连接
				Connection conn = dbc.getConn();
				try{
					//创建DAO
					OrderDao dao = new OrderDao();
					//dao执行查询
					_l=dao.findbyAll(conn,sql);
				}catch(Exception e){
					e.printStackTrace();
				}finally{
					try{
						conn.close();//关闭数据库
					}catch(Exception ex){
						ex.printStackTrace();
					}
				}
			}else{
				System.out.println("数据库连接失败!");
			}
			return _l;
			}
}


DAO:

 

public class OrderDao {
	
	 
 
public List findbyAll(Connection _conn, String strSql)
	{
		Vector v = new Vector();
		//定义 存放SQL语句的 StringBuffer
		StringBuffer sbSQL = null;
		//定义 PreparedStatement
		PreparedStatement ps = null;
		//定义数据库链接
		Connection conn = null;
		ResultSet rs=null;
		try
		{
			conn = _conn;
			sbSQL = new StringBuffer();
			sbSQL.append("select * from  Orderx  where  "); 
			sbSQL.append(strSql); 
			ps = conn.prepareStatement(sbSQL.toString());
			//执行SQL
			rs = ps.executeQuery();
			while(rs.next()){
				OrderVo vo1= new OrderVo();

				vo1.setUserid(rs.getString("userid"));
				vo1.setState(rs.getShort("state"));
				vo1.setTotal(rs.getFloat("total"));
				vo1.setNumbers(rs.getInt("numbers"));
				vo1.setPrice(rs.getFloat("price"));
				vo1.setName(rs.getString("name"));
				vo1.setId(rs.getInt("id"));

				v.addElement(vo1);
			}
			 
		}
		catch (Exception ex)
		{
			ex.printStackTrace();
		}
		finally
		{
			try
			{
				//关闭 ps
				if (ps != null)
				{
					ps.close();
					ps = null;
				}
			}
			catch (Exception ex)
			{
				ex.printStackTrace();
			}
		}
		return v;
	}

 
}

 

vo:

public class OrderVo {
	
	private float total;
	private int numbers;
	private float price;
	private short state;
	private String name;
	private int id;
	private String userid;
	
	public void setTotal(float total) {
		this.total = total;
	}
	public void setNumbers(int numbers) {
		this.numbers = numbers;
	}
	public void setPrice(float price) {
		this.price = price;
	}
	public void setName(String name) {
		this.name = name;
	}
	public void setId(int id) {
		this.id = id;
	}
	public short getState() {
		return state;
	}
	public void setState(short state) {
		this.state = state;
	}
	public float getTotal() {
		return total;
	}
	public int getNumbers() {
		return numbers;
	}
	public float getPrice() {
		return price;
	}
	public String getName() {
		return name;
	}
	public int getId() {
		return id;
	}
	public String getUserid() {
		return userid;
	}
	public void setUserid(String userid) {
		this.userid = userid;
	}
 
	
	
}


JSP:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ page import="cn.edu.ccnu.imd.study.demo.vo.OrderVo" %>
<%
String path = request.getContextPath();
List l = (List)request.getAttribute("OrderList");
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
	<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
    <meta http-equiv="content-language" content="zh-CN" />  
	<title>订单列表</title>
	<meta name="Keywords" content="订单列表"/>
	<meta name="Description" content="订单列表"/>
 </head>
 <body>
   <h1>订单列表</h1>
	 
		<table>
		<tr>
			<th>消费人</th>	 
			<th>品名</th>	 
			<th>单价</th>	 
			<th>数量</th>
			<th>总价</th>
			<th>状态</th>
		 
		</tr>
		<% 
		for(int i=0;l!=null && i<l.size();i++){
			OrderVo vo = (OrderVo)l.get(i);
		%>
		<tr>	 
			<td ><%=vo.getUserid() %></td>
			<td ><%=vo.getName() %></td>
			<td ><%=vo.getPrice() %></td>
			<td ><%=vo.getNumbers() %></td>
			<td ><%=vo.getTotal() %></td>
			<%if(vo.getState() == 1){%>
			<td style="color:green;">已支付</td>
			<%}else {%>
			<td style="color:red;">未支付</td>
			<%}%>
			 
		</tr>
		<% 
		}
		%>	
	</table>
	
 </body>
</html>


 

WEB.XML:

  <servlet>
    <description>deal order</description>
    <display-name>order</display-name>
    <servlet-name>order</servlet-name>
    <servlet-class>cn.edu.ccnu.imd.study.demo.servlet.OrderServlet</servlet-class>
  </servlet>

  
  
  <servlet-mapping>
    <servlet-name>order</servlet-name>
    <url-pattern>/servlets/Order.html</url-pattern>
  </servlet-mapping>


 

效果:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值