java web入门 第二期--001【简单web查询】

一、基础过程:

(1)展示页面--》(2)web.xml--》(3)servlet--》(4)dao--》(5)daoImpl--》(6)model--》(7)jdbc

二、基础代码

(1)展示页面index.jsp

<%@page import="org.apache.commons.collections.CollectionUtils"%>
<%@page import="java.util.Collections"%>
<%@page import="java.util.List"%>
<%@page import="com.mmmm.model.Customser"%>
<%@page import="org.apache.jasper.tagplugins.jstl.core.ForEach"%>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
	pageEncoding="ISO-8859-1"%>
<!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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
	<form action="customerServlet?method=query" method="POST">
		CustomerName:<input type="text" name="name" /> <br> <br>
		Address:           <input
			type="text" name="address"> <br> <br>
		Phone:             
		<input type="text" name="phone"> <br> <br> <input
			type="submit" name="submit" value="Query" />
		         <a href="">Add
			New Customer</a>
	</form>
	<br>
	<br>
	<table border="1" cellpadding="0" cellspacing="10">
		<tr>

			<th>ID</th>
			<th>CustomerName</th>
			<th>Address</th>
			<th>Phone</th>
			<th>Update/delete</th>

		</tr>

		<%
			List<Customser> customers = (List<Customser>) request.getAttribute("customers");
			if(!CollectionUtils.isEmpty(customers)){
			
		%>
		<%
			for (Customser customer : customers) {
		%>
		<tr>
			<td><%=customer.getId()%></td>
			<td><%=customer.getName()%></td>
			<td><%=customer.getAddress()%></td>
			<td><%=customer.getPhone()%></td>
			<td><a href="">UPDATE</a>/<a href="">DELETE</a></td>
		</tr>
		<%
			}
		%>

		<%} %>
	</table>

</body>
</html>

(2)web.xml

<?xml version="1.0" encoding="ISO-8859-1"?>
<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"
	metadata-complete="true" version="3.0">
	<servlet>
		<servlet-name>customerServlet</servlet-name>
		<servlet-class>com.mmmm.servlet.CustomerServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>customerServlet</servlet-name>
		<url-pattern>/customerServlet</url-pattern>
	</servlet-mapping>
</web-app>

(3)servlet

package com.mmmm.servlet;

import java.io.IOException;
import java.lang.reflect.Method;
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 com.mmmm.dao.CustomerDAO;
import com.mmmm.dao.impl.CustomerDAOImpl;
import com.mmmm.model.Customser;

public class CustomerServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
	private CustomerDAO customerDAO = new CustomerDAOImpl();

	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		String method = request.getParameter("method");

		try {
			Method me = getClass().getDeclaredMethod(method, HttpServletRequest.class, HttpServletResponse.class);
			me.invoke(this, request, response);
		} catch (Exception e) {
			e.printStackTrace();
		}

	}

	@SuppressWarnings("unused")
	private void query(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

		List<Customser> customers = customerDAO.getAll();
		request.setAttribute("customers", customers);
		request.getRequestDispatcher("/index.jsp").forward(request, response);

	}

}

(4)DAO

package com.mmmm.dao;

import java.util.List;

import com.mmmm.model.Customser;

public interface CustomerDAO {

	/**
	 * 无条件查询 获取全部
	 * @return
	 */
	List<Customser> getAll();
}

(5)DAOImpl

package com.mmmm.dao.impl;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import org.springframework.jdbc.core.JdbcTemplate;

import com.mmmm.dao.CustomerDAO;
import com.mmmm.model.Customser;
import com.mmmm.utils.JdbcUtil;

public class CustomerDAOImpl implements CustomerDAO {

	@Override
	public List<Customser> getAll(){
		String sql ="select * from user";
		JdbcTemplate jdbcTemplate=null;
		try {
			jdbcTemplate = JdbcUtil.getJdbcTemplate();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		@SuppressWarnings("unchecked")
		List<Map<String, Object>> queryForList = jdbcTemplate.queryForList(sql);
		List<Customser> list=new ArrayList<Customser>();
		for(Map map:queryForList){

			Customser cc=new Customser();
			cc.setId(String.valueOf(map.get("id")));
			cc.setName((String)map.get("name"));
			cc.setAddress((String)map.get("address"));
			cc.setPhone((String)map.get("phone"));

			list.add(cc);
		}
		return list;
	}

}

(6)model

package com.mmmm.model;

public class Customser {

	@Override
	public String toString() {
		return "Customser [id=" + id + ", name=" + name + ", address=" + address + ", phone=" + phone + "]";
	}
	public Customser(String name, String address, String phone) {
		super();
		this.name = name;
		this.address = address;
		this.phone = phone;
	}
	public Customser() {
		super();
	}
	private String id;
	private String name;
	private String address;
	private String phone;
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getAddress() {
		return address;
	}
	public void setAddress(String address) {
		this.address = address;
	}
	public String getPhone() {
		return phone;
	}
	public void setPhone(String phone) {
		this.phone = phone;
	}
	
}

(7)JDBC

package com.mmmm.utils;

import org.springframework.jdbc.core.JdbcTemplate;

import com.mchange.v2.c3p0.DriverManagerDataSource;

public class JdbcUtil {

	private final static String driverName="com.mysql.jdbc.Driver";

	private final static String url="JDBC:mysql:///javaweb01";

	private final static String user="root"; 
	private final static String password="123456";



	public static JdbcTemplate	getJdbcTemplate() throws Exception{

		DriverManagerDataSource dataSource=new DriverManagerDataSource();  
		dataSource.setDriverClass(driverName);  
		dataSource.setJdbcUrl(url);  
		dataSource.setUser(user);  
		dataSource.setPassword(password);  
		JdbcTemplate jdbcTemplate=new JdbcTemplate(dataSource);  
		return jdbcTemplate;
	}
}

展示效果

目前缺点:(1)采用customerServlet?method=query 的方式来访问,暴露了即将调用的方法,不私密,有安全隐患。

解决方法:可以使用query.do来访问,然后将web.xml的servletMapping映射的url设置为*.do即可接收到请求,然后*即为将要调用的函数名,使用反射,直接跳转到该方法即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值