zoukankan      html  css  js  c++  java
  • jsp

    1.为什么要使用jsp

      再使用jsp之前我们先做一个联系,查询数据库表中的内容,并写在html页面上显示出来,我们以上一篇的代码为基础:代码如下:

    package com.zs.servlet;
    
    import com.zs.dao.IStudentDAO;
    import com.zs.dao.impl.StudentImpl;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.util.List;
    import java.util.Map;
    
    public class StudentServletDemo extends HttpServlet {
        @Override
        protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            resp.setContentType("text/html;charset=utf-8");//当表中出现汉字时,输出到html页面会出现乱码,这句话设置响应的编码格式
    //        首先创建接口的对象,通过接口调用方法查询所有学生信息
            IStudentDAO is = new StudentImpl();
            List<Map<String, Object>> list = is.getStudentAll();
    //        获得输出流
            PrintWriter out = resp.getWriter();
    //        建表格
            out.write("<table border='1' cellspecing='1'>");
    //        表头
            out.write("<tr>");
            out.write("<th>id</th>");
            out.write("<th>name</th>");
            out.write("<th>age</th>");
            out.write("</tr>");
    //        遍历集合输出
            for (Map<String, Object> map : list) {
                out.write("<tr>");
                out.write("<td>"+map.get("id")+"</td>");
                out.write("<td>"+map.get("sname")+"</td>");
                out.write("<td>"+map.get("age")+"</td>");
                out.write("</tr>");
            }
        }
    }
    View Code

    结果:

    我们发现在Java后台中写html代码十分麻烦,因此我们需要一个展示数据方便的东西----->jsp

      Servlet获取数据,处理业务,是一个java文件,擅长处理与java代码有关的内容,

      jsp展示数据,jsp看起来像是html文件,擅长处理与html文件有关的内容;(jsp看起来像是html,但是并不是html,是java的动态网页)

    什么是jsp?

      java Server  Pages     java的动态网页

    如何使用jsp?

      我们还以开头写的代码为例;现在改用jsp来显示数据,在web文件夹下新建student.jsp文件 代码如下:

    package com.zs.servlet;
    
    import com.zs.dao.IStudentDAO;
    import com.zs.dao.impl.StudentImpl;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
    import java.util.List;
    import java.util.Map;
    
    public class StudentServletDemo extends HttpServlet {
        @Override
        protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    //        首先创建接口的对象,通过接口调用方法查询所有学生信息
            IStudentDAO is = new StudentImpl();
            List<Map<String, Object>> list = is.getStudentAll();
    //        将list集合设置为请求共享数据,并给共享数据起一个名字stuAll,当有多个共享数据时,方便区分;
            req.setAttribute("stuAll",list);
    //        请求转发到jsp页面,并转发请求参数,回响参数
            req.getRequestDispatcher("student.jsp").forward(req,resp);
        }
    }
    后台代码
    <%@ page import="java.util.List" %>
    <%@ page import="java.util.Map" %><%--
      Created by IntelliJ IDEA.
      User: 赵帅
      Date: 2019/4/16
      Time: 18:41
      To change this template use File | Settings | File Templates.
    --%>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>Title</title>
    </head>
    <body>
        <%--用html标签来搭建表格--%>
        <table border="1" cellspacing="0">
            <tr>
                <th>id</th>
                <th>name</th>
                <th>age</th>
            </tr>
            <%--在jsp中写java代码,获得共享数据list,java代码要写在<%%>标签中--%>
            <% List<Map<String ,Object>> stuAll = (List<Map<String, Object>>) request.getAttribute("stuAll");
                for (Map<String, Object> map : stuAll) {%>
                    <tr>
                        <%--获得一个变量的值标签为 <%= 变量名%> --%>
                        <td><%= map.get("id")%></td>
                        <td><%= map.get("sname")%></td>
                        <td><%= map.get("age")%></td>
                    </tr>
            <%--这个括号与for循环的括号组成一对--%>
            <%}%>
        </table>
    </body>
    </html>
    jsp代码

    结果如下:

  • 相关阅读:
    模板方法模式
    结构型模式
    组合模式
    享元模式
    [STL离散化]Skyscrapers的lower_bound系列
    [水]浙大校赛补题
    [数]来自亮亮OJ的五道数学题
    [数]被数学淹没不知所措
    [tour]2019HUST onsite签到
    [树组BIT]训练两题重新理解ver.
  • 原文地址:https://www.cnblogs.com/Zs-book1/p/10719099.html
Copyright © 2011-2022 走看看