Web开发基础_Servlet学习_0014_JSP在MVC开发模式中应用

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Coder_Boy_/article/details/82503419

Web开发模式演变

备注:Mode1:

Servlet是在java中拼接HTML 和 jsp是在HTML中写JAVA代码 都不利于开发维护,易出错,可读性差。 

使用Model2模式开发员工查询功能 (JSP做视图层 )

案例演示:

工程案例目录结构

 pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.study</groupId>
  <artifactId>Jsp02_v2</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
  <dependencies>
  	<dependency>
  		<groupId>javaee</groupId>
  		<artifactId>javaee-api</artifactId>
  		<version>5</version>
  	</dependency>
  </dependencies>
</project>

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_2_5.xsd" version="2.5">
  <display-name>Jsp02_v2</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  
  <servlet>
  	<servlet-name>findEmp</servlet-name>
  	<servlet-class>web.FindEmpServlet</servlet-class>
  </servlet>
  <servlet-mapping>
  	<servlet-name>findEmp</servlet-name>
  	<url-pattern>/findEmp</url-pattern>
  </servlet-mapping>
</web-app>

FindEmpServlet.java

package web;

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 dao.EmpDao;
import entity.Emp;

public class FindEmpServlet extends HttpServlet{

	@Override
	protected void service(HttpServletRequest req,
			HttpServletResponse res) throws ServletException, IOException {

			//1.接收参数
			//没有参数,省略
			//2.处理业务
			EmpDao dao = new EmpDao();
			List<Emp> list= dao.findAll();
			//3.转发(是一种特殊的跳转方式)
			//3.1 将需要传递给JSP的数据绑定到request上
			//key 是字符串 ,value是任意类型的数据
			req.setAttribute("emps", list);
			//3.2 将请求转发到JSP
			//当前:Jsp02_v2/findEmp
			//目标:Jsp02_v2/emp_list.jsp
			req.getRequestDispatcher("emp_list.jsp").forward(req, res);
	}

	
}

EmpDao.java

package dao;

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

import entity.Emp;

public class EmpDao {

	public void save(Emp e) {
		System.out.println(
			"向DB插入员工数据:" + e);
	}

	public List<Emp> findAll() {
		List<Emp> list = new ArrayList<Emp>();
		
		Emp e1 = new Emp();
		e1.setEmpno(1);
		e1.setName("唐僧");
		e1.setJob("领导");
		e1.setSal(9000.0);
		list.add(e1);
		
		Emp e2 = new Emp();
		e2.setEmpno(2);
		e2.setName("悟空");
		e2.setJob("保镖");
		e2.setSal(6000.0);
		list.add(e2);
		
		Emp e3 = new Emp();
		e3.setEmpno(3);
		e3.setName("八戒");
		e3.setJob("徒弟");
		e3.setSal(7000.0);
		list.add(e3);
		
		return list;
	}
}

Emp.java

package entity;

import java.io.Serializable;

public class Emp implements Serializable {
	
	private Integer empno;
	private String name;
	private String job;
	private Double sal;
	
	public Integer getEmpno() {
		return empno;
	}
	public void setEmpno(Integer empno) {
		this.empno = empno;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getJob() {
		return job;
	}
	public void setJob(String job) {
		this.job = job;
	}
	public Double getSal() {
		return sal;
	}
	public void setSal(Double sal) {
		this.sal = sal;
	}

}

emp_list.jsp

<%@page pageEncoding="utf-8"
import="entity.*,java.util.*"%>
<!doctype html>
<html>
	<head>
		<title>员工列表</title>
		<meta charset="utf-8">
	</head>
	<body>
		<table border="1" width="40%" cellspacing="0">
			<tr>
				<th>编号</th>
				<th>姓名</th>
				<th>职位</th>
				<th>薪资</th>
			</tr>
			<%
				//获取所以的员工
				List<Emp> list = (List<Emp>)request.getAttribute("emps");
				for(Emp e : list){
			%>
				<tr>
					<td><%=e.getEmpno()%></td>
					<td><%=e.getName() %></td>
					<td><%=e.getJob() %></td>
					<td><%=e.getSal() %></td>
				</tr>
			<%
				}
			%>
		   <%System.out.print(1111); %>
		
		</table>
	
	</body>

</html>

Jsp02_v2工程部署到Tomcat上,运行Tomcat启动案例工程,

浏览器录入http://localhost:8080/Jsp02_v2//findEmp即可:如果没有错误,最终页面显示效果应如下图:

猜你喜欢

转载自blog.csdn.net/Coder_Boy_/article/details/82503419