猫哥带你去战斗—Java Web开发—Servlet篇[6]—漂亮的终结篇
2017-02-26 19:12
417 查看
本篇是Java Web开发系列的最后一篇,接下来猫哥将开始《猫哥带你去战斗—使用JSP+Servlet开发培训班作业管理系统》,新的系列将承接Java Web开发,主要依赖HTML、Java、Servlet、JSP这些基本技术开发一个培训班作业管理系统。
OK,在Servlet篇的最后,猫哥介绍两个东西
OK,当然,最常用的还是循环,借助EL表达式和
好的,现在举个例子,有三个文件,classStudent.html用来选择班级,ClassServlet用来处理classStudent.html提交的请求,classStudentList.jsp用来显示结果,三个文件代码如下:
可见使用了JSP标准标签库和EL表达式后,网页代码中只剩各类标签和表达式,可以说基本实现了前后端的分离,从此JSP或HTML负责前台显示及从后台取数,Servlet负责逻辑处理及数据库查询或修改操作。各司其职。
OK,在Servlet篇的最后,猫哥介绍两个东西
${}和
<c:forEach>。
${},学名“EL表达式”,功能强大,具体负责将Servlet中request和response对象中的属性值取出来。 举个栗子: 在Servlet中有这么一句request.setAtrribute("className","二年级三班"); 在网页中可以这样取值${className} 太简单了!
OK,当然,最常用的还是循环,借助EL表达式和
<c:forEach>,就可以解决。
<c:forEach>属于JSP标准标签库(JSTL),用来遍历。
好的,现在举个例子,有三个文件,classStudent.html用来选择班级,ClassServlet用来处理classStudent.html提交的请求,classStudentList.jsp用来显示结果,三个文件代码如下:
<!DOCTYPE html> <html> <head> <title>classStudent.html</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><!-- 本行用来设置编码 --> </head> <body> <form name="mainForm" method="post" action="/ServletDemo/ClassServlet"><!-- 表单提交给ClassServlet--> 请选择要查询的班级: <select name="class"> <!--此处注意分别对应class_info表的class_id和class_name--> <!--实际上这三个班级信息也应该是从数据库中查出,此处为了方便演示直接写死,因为我们要演示的重点是Servlet输出数据到网页--> <option value="1">一班</option> <option value="2">二班</option> <option value="3">三班</option> </select> <br/> <input type="submit"></input> </form> </body> </html>
package servlet; import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import entity.StudentInfo; import operation.StudentOperation; /** * ClassServlet类 * @author 猫哥 */ public class ClassServlet extends HttpServlet { public ClassServlet() { super(); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html");//设置输入格式 response.setContentType("text/html"); request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8"); String classId=request.getParameter("class");//获取要查询的班级id //此处要从数据库中查询classId对应班级的学生信息 StudentOperation stuOper=new StudentOperation(); //将班级的学生信息输出 List students=stuOper.selectByClassId(classId); request.setAttribute("students", students); //只能跳转本Web项目网页,可以request.setAttribute传值,看见后面request作为参数了? request.getRequestDispatcher("/classStudentList.jsp").forward(request,response); //跳转任何路径,无法使用request.setAttribute来传值,所以此处使用不行。 //response.sendRedirect("/classStudentList.jsp"); } }
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><!-- 使用c:标签需要添加本行代码 --> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>classStudentList.jsp</title> </head> <body> 该班的学生有:<br/> <c:forEach items="${students}" var="item"> 姓名:${item.studentName} 班级:${item.studentClass.className}<br/> </c:forEach> 该班的学生有:<br/> <table border="1"> <c:forEach items="${students}" var="item"> <tr> <td>姓名:${item.studentName}</td> <td>${item.studentClass.className}</td> </c:forEach> </table> </body> </html>
可见使用了JSP标准标签库和EL表达式后,网页代码中只剩各类标签和表达式,可以说基本实现了前后端的分离,从此JSP或HTML负责前台显示及从后台取数,Servlet负责逻辑处理及数据库查询或修改操作。各司其职。
相关文章推荐
- 猫哥带你去战斗—Java Web开发—Servlet篇[0]—Servlet是干嘛的
- 猫哥带你去战斗—Java Web开发—Servlet篇[2]—get与post
- 猫哥带你去战斗—Java Web开发—Servlet篇[3]—获取网页数据
- 猫哥带你去战斗—Java Web开发—Servlet篇[1]—手(首)写Servlet
- 猫哥带你去战斗—Java Web开发—Servlet篇[5]—犀利的内置对象
- 猫哥带你去战斗——Java Web开发——开发环境介绍[3]——图文安装流程
- 猫哥带你去战斗——Java Web开发——网页篇[4]——表单
- 猫哥带你去战斗—Java Web开发—Java篇[12]—使用连接池的MySQL操作类
- 猫哥带你去战斗——Java Web开发——前言[0]
- 猫哥带你去战斗——Java Web开发——Java篇[10]——static和鸡蛋
- 猫哥带你去战斗——Java Web开发——Java篇[9]——使用SQL语句实现增删改查
- 猫哥带你去战斗——Java Web开发——网页篇[0]——第一个网页,第一次访问
- 猫哥带你去战斗——Java Web开发——网页篇[6]——布局
- 猫哥带你去战斗——Java Web开发——网页篇[5]——样式
- 猫哥带你去战斗——Java Web开发——Java篇[11]——数据库连接池
- 猫哥带你去战斗——Java Web开发——Java篇[4]——常用容器
- 猫哥带你去战斗——Java Web开发——开发环境介绍[2]
- 猫哥带你去战斗——Java Web开发——开发环境介绍[1]
- 猫哥带你去战斗——Java Web开发——Java篇[1]——从内存讲起
- 猫哥带你去战斗—Java Web开发—Java篇[14]—数据库操作简化