Javaweb入门之jsp

  1. 什么是jsp
    为了解决动态生成html文档的技术
    代替servlet程序回传html页面的数据,使成本降低

work catalina localhost

  1. jsp头部的page指令
    1)<%–声明脚本格式–%>
    <%! private String name;
    static {
    System.out.println(“这是一个静态代码块”);
    }
    %>
    2)<%–声明脚本格式–%>
    <%! private String name=“张三”;
    static {
    System.out.println(“这是一个静态代码块”);
    }
    %>
    <%–<%=表达式%>输出脚本–%>
    <%=88888%>
    <%=“abcdef”%>
    <%=name%>
    3)<%–代码脚本 <%java语句%>–%>
    <% for (int i=1;i<10;i++){
    System.out.println(i);
    }
    %>
  2. jsp的四大域对象
    pageContext 只在jsp当前页面有效
    request 在一次请求范围之内能够渠道
    aession 浏览器开启到浏览器关闭 在浏览器开启的时候,aession就开启,
    application 适用于整个servlet工程

<% //一次请求范围内有效
request.setAttribute(“request”,“request”);
//当前jsp页面有效
pageContext.setAttribute(“pageContext”,“pageContext”);
//一次会话,浏览器开启到关闭
session.setAttribute(“session”,“session”);
//适用于整个web项目
application.setAttribute(“application”," application");
%>
<%=request.getAttribute(“request”)%>

<%=pageContext.getAttribute(“pageContext”)%>

<%=session.getAttribute(“session”)%>

<%=application.getAttribute(“application”)%>

  1. jsp的常用标签
    1)静态包含
    <%–静态导入–%>
    <%@include file=“c.jsp”%>
    2)动态包含
    3)请求转发
    //请求转发,地址不会改变
    方法1
    request.getRequestDispatcher("/jsp/c.jsp").forward(request,response);
    方法2
    <jsp:forward page="/jsp/c.jsp "></jsp:forward>

a.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>

<%--静态导入--%>
<%@include file="c.jsp"%>



<%--声明脚本格式--%>
<%! private String name="张三";
    static {
        System.out.println("这是一个静态代码块");
    }
    %>
<%--<%=表达式%>--%>
<%=88888%>
<%="abcdef"%>
<%=name%>

<%--代码脚本 <%java语句%>--%>
<%    for (int i=1;i<10;i++){
    System.out.println(i);
}
        //请求转发,地址不会改变
        request.getRequestDispatcher("/jsp/c.jsp").forward(request,response);
%>
<jsp:forward page="/jsp/c.jsp "></jsp:forward>
<body>

</body>
</html>

b.jsp


<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>

<% //一次请求范围内有效
    request.setAttribute("request","request");
    //当前jsp页面有效
    pageContext.setAttribute("pageContext","pageContext");
    //一次会话,浏览器开启到关闭
    session.setAttribute("session","session");
   //适用于整个web项目
    application.setAttribute("application"," application");
%>
<%=request.getAttribute("request")%><br>
<%=pageContext.getAttribute("pageContext")%><br>
<%=session.getAttribute("session")%><br>
<%=application.getAttribute("application")%><br>

<body>

</body>
</html>

c.jsp


<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<%=request.getAttribute("request")%><br>
<%=pageContext.getAttribute("pageContext")%><br>
<%=session.getAttribute("session")%><br>
<%=application.getAttribute("application")%><br>

<body>
我是c.jsp
</body>
</html>

d.jsp

<%@ page import="com.bky.dto.User" %>
<%@ page import="java.util.ArrayList" %><%--
  Created by IntelliJ IDEA.
  User: admin
  Date: 2020/7/31
  Time: 10:36
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<%
   // User user=(User)request.getAttribute("user");
    ArrayList<User> users = (ArrayList<User>) request.getAttribute("users");
%>
<body>
<h1> 欢迎来到***界面</h1>
<table border="1px">
    <tr>
        <th>姓名</th>
        <th>性别</th>
        <th>地址</th>
        <th>修改</th>
    </tr>
    <% for (User us:users) {

    %>

    <tr>
        <td><%=us.getUname()%></td>
        <td><%=us.getSex()%></td>
        <td><%=us.getAddress()%></td>
        <td> <a href="#">删除</a> <a href="#">修改</a> </td>
    <%                      }
            %>
    </tr>
</table>

</body>
</html>

User .java

package com.bky.dto;

public class User {
    private  String uname;
    private String sex;
    private String address;

    public User(String uname, String sex, String address) {
        this.uname = uname;
        this.sex = sex;
        this.address = address;
    }
public User(){

}
    @Override
    public String toString() {
        return "User{" +
                "uname='" + uname + '\'' +
                ", sex='" + sex + '\'' +
                ", address='" + address + '\'' +
                '}';
    }

    public String getUname() {
        return uname;
    }

    public void setUname(String uname) {
        this.uname = uname;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }
}

ServletDemo01 .java

package com.bky.servlet;

import com.bky.dto.User;

import javax.servlet.RequestDispatcher;
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.ArrayList;

public class ServletDemo01 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    //创建一个集合
    ArrayList<User> users = new ArrayList<>();
    for(int i=1;i<10;i++) {
        //封装数据
    User user = new User();
    user.setUname("张三");
    user.setSex("男");
    user.setAddress("北京市");
    users.add(user);
    }
    //把数据存放到作用域
    req.setAttribute("users",users);

    //获取转发对象并且设置地址
    RequestDispatcher requestDispatcher = req.getRequestDispatcher("/jsp/test.jsp");

    //走向具体的类
        requestDispatcher.forward(req,resp);
    }
}

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <servlet>
        <servlet-name>ServletDemo01</servlet-name>
        <servlet-class>com.bky.servlet.ServletDemo01</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>ServletDemo01</servlet-name>
        <url-pattern>/ServletDemo01</url-pattern>
    </servlet-mapping>

</web-app>

结果

在这里插入图片描述

注意:

在这里插入图片描述
尽量使用作用域范围小的作用域对象,以减少内存

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值