目录
Jsp构成与原理
JSP的特点:
servlet与jsp区别
servlet和jsp的各自的特点
jsp的脚本元素
列1:使用jsp实现九九乘法表
列2:servlet读取所有用户信息
列3:输入分数,判断分数所属等级
Jsp构成与原理
JSP:===Java Server Page(java服务器页面)是一种创建动态页面的技术.由静态和动态混合组成的动态页面(*.jsp)静态内容: html,xml,text动态内容: java代码,javabean的属性Jsp=html+java
JSP的特点:
内容与展现逻辑分离.显示数据—视图servlet与jsp区别
1、Servlet在Java代码中可以通过HttpServletResponse对象动态输出HTML内容。2、JSP是在静态HTML内容中嵌入Java代码,然后Java代码在被动态执行后生成HTML内容。servlet和jsp的各自的特点
1、Servlet很好的处理逻辑代码,不善于显示数据。但是在Java源文件中,因为是通过字符串拼接的方式生成动态HTML内容,这样就容易导致代码维护困难、可读性差。
2、JSP很好的显示数据。虽然规避了Servlet在生成HTML内容方面的劣势,但是在HTML中混入大量、复杂的业务逻辑。
jsp的脚本元素
三种类型:
表达式 <%=%>表达中不允许有分号,本质就是out.println();
声明 <%! %>作为servlet 的一个成员
脚本 <%%>嵌入java代码
列1:使用jsp实现九九乘法表
代码截图
index.html
<!DOCTYPE html><html><head><meta charset="UTF-8"><title>0611作业</title></head><body><form action="../jsp/multiplication.jsp"><input type="submit" value="作业1" /><br>编写一个JSP页面,输出九九乘法表</form></body></html>
multiplication.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPE html><html><head><meta charset="UTF-8"><title>乘法表</title></head><body><h1>乘法表</h1><table border="0"><%for (int i = 1; i <= 9; i++) { //行%><tr><%for (int j = 1; j <= i; j++) { //列%><td style="padding: 2px"><%=j%>✕<%=i%>=<%=i * j%></td><%}%></tr><%}%></table></body></html>
测试:
列2:servlet读取所有用户信息
写一个servlet读取所有用户信息放入一个List,然后转发到一个jsp,在jsp中使用jstl和el表达式将所有用户的信息通过表格显示出来
部分代码:
index.html
<!DOCTYPE html><html><head><meta charset="UTF-8"><title>0611作业</title></head><body><form action="../query.do"><input type="submit" value="作业2" /><br>写一个servlet读取所有用户信息放入一个List,然后转发到一个jsp,在jsp中使用jstl和el表达式将所有用户的信息通过表格显示出来</form></body></html>
queryAlluserservlet.java
public class QueryAllUser extends HttpServlet {private static final long serialVersionUID = 1L;UserService userService = new UserService();//query.doprotected void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/html;charset=utf-8");UserService userService = new UserService();//客户端请求List<User> users = userService.getQueryAllUser();//查询用户信息request.setAttribute("users", users);//传递user对象PrintWriter printWriter = response.getWriter();//转发到jsp/queryalluser.jsprequest.getRequestDispatcher("jsp/queryalluser.jsp").forward(request, response);}}
queryalluser.jsp
注:jsp中要导入所用的包
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"import="java.util.*,com.user.service.UserService,com.user.po.User"%><!DOCTYPE html><html><head><meta charset="UTF-8"><title>0611第二题</title></head><body><table border="1px"><%UserService userService = new UserService();List<User> users = (List<User>) request.getAttribute("users");%><tr><th>id</th><th>用户名</th><th>密码</th><th>性别</th><th>年龄</th><th>电话</th><th>爱好</th></tr><%for (User u : users) {%><tr><td><%=u.getId()%></td><td><%=u.getName()%></td><td><%=u.getPassword()%></td><td><%=u.getSex()%></td><td><%=u.getAge()%></td><td><%=u.getTelphone()%></td><td><%=u.getLove()%></td></tr><%}%><tr></tr></table></body></html>
结果
列3:输入分数,判断分数所属等级
利用jsp完成一个若用户成绩大于90时,显示A 大于80,B 大于70,C 大于等于60,D 其余所有情况不合格的判断 要求:成绩用url参数传递过来即可,例如:localhost:8080/xxx/index.jsp?age=65 之后页面显示成绩等第(A~不合格)
index.html
<!DOCTYPE html><html><head><meta charset="UTF-8"><title>0611作业</title></head><body><form action="homework3.html"><input type="submit" value="作业3" /><br>利用jstl标签完成一个若用户成绩大于90时,显示A大于80,B 大于70,C 大于等于60,D 其余所有情况不合格的判断要求:成绩用url参数传递过来即可,例如:localhost:8080/xxx/index.jsp?age=65之后页面显示成绩等第(A~不合格)</form></body></html>
homework3.html
<!DOCTYPE html><html><head><meta charset="UTF-8"><title>Insert title here</title></head><body><form action="../homework3.do"><input type="text" name="num"/><input type="submit" value="提交"/> </form></body></html>
Servlet代码
public class ScoreServlet extends HttpServlet {private static final long serialVersionUID = 1L;/*** @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse*response)*///homework3.doprotected void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {try {String num = request.getParameter("num");//获取html中的值int a = Integer.valueOf(num);//讲取到的值转化成整形System.out.println("num------" + num);request.setAttribute("num", a);//传值到jspresponse.setContentType("text/html;charset=utf-8");PrintWriter printWriter = response.getWriter();//重定向request.getRequestDispatcher("jsp/judeif.jsp").forward(request, response);} catch (Exception e) {// TODO: handle exceptione.printStackTrace();}}}
judeif.jsp‘
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPE html><html><head><meta charset="UTF-8"><title>Insert title here</title></head><body><%int score = (int) request.getAttribute("num");%><%if (score > 90) {%><%="A优秀"%><%} else if (score > 80) {%><%="B良"%><%} else if (score > 70) {%><%="C好"%><%} else if (score > 60) {%><%="D一般"%><%} else {%><%="E不及格"%><%}%></body></html>
’结果: