jsp动态网页基础

本文详细介绍了JSP技术,包括与HTML和Java的区别、基础语法、session的使用、错误处理以及对象的操作等核心概念,是学习JSP动态网页的基础教程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

jsp技术详解

1.介绍
1.JSp 全称是JAVA Server pages
他和Servlet技术一样 都是SUM公司定于的一种
用于开发web资源的技术 JSP事件上就是Servlet
2.jsp=html + java
3.原理:访问jsp页面时  jsp页面会被翻译成.java文件然后.java会被编译成.Class文件(字节码文件)
2.jsp和html和java的区别
html:静态内容
servlet:适合编写java逻辑
jsp:适合编写动态内容,但是不适合编写java逻辑
3.jsp基础语法
1.小脚本
2.表达式<%= 2+3 %>
3.声明<%! %>表示在类中定义全局成员,和静态块
4.注释:
jsp注释:<--% 内容 --%> 特点安全 浏览器查看不可见
网页注释:<!--网页注释-->特点:不安全 浏览器查看源码可见
5.page import
  //向jsp中导入一个架包
  <%@ page import="java.util.Date,java.util.List"%>或者
  <%@ page import="java.util.Date"%>
  <%@ page import="java.util.List"%>
6.jsp默认导入包
    import java.lang.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    import javax.servlet.jsp.*;
7.session 默认值是true
  ErrorPage:如果页面中有错误,则跳转到指定的资源
  isErrorPage:是否参加throwable对象.默认值是false
  contextType:等同于response.setContextType("text/html:charset=utf-8");
8.包含include
  1.静态包含:把其他资源包含到当前页面中.
  <%@ include file="/4.jsp"%>
  2.动态包含;
  <jsp:include page="/4.jsp"></jsp:include>
  3.区别:翻译的时间段不同
    静态:在翻译时就把两个文件合并
    动态:不会合并文件,当代码执行到include时,才包含另一个文件的内容
    原则:能用静的就不用动的
9.taglib
  作用:在jsp页面中导入jstl标签库.替换jsp中的java代码片段
  需要导入:jstl.jar standard.jar
  <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 
10.jsp的六个动作
<jsp:include > 动态包含
<jsp:forward> 请求转发
<jsp:param> 设置请求参数
<jsp:useBean> 创建一个对象
<jsp:setProperty> 给指定的对象属性赋值
<jsp:getProperty> 取出指定对象的属性值
3.jsp session开关,和小脚本<% %><%! %><%= %>注释的测试
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
   <!-- 默认是true 相当是个开关 -->
<%@ page session="true" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%--jsp注释 --%>
<!-- 测试声明 html注释-->
<%!//加上叹号会被翻译到类的下面 也就是 全局变量
//还可以声明方法 静态块,不加的话默认在一调用方法中
    int num2 = 10;
%>
<%
    session.getAttribute("12");//当session为false的时候会报错
    int num1 = 10;
    num1++;
    num2++;
    /* out.print(num1); */
%>
<!-- 相对于 out.print(num1) 并且可以运算-->
<!-- 表达式 -->
<%=num1 %>
<%=num2 %>
</body>
</html>
4.网页错误errorPage跳转测试
1.页面1

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page errorPage="/error.jsp" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
   int num = 10/0;
%>
</body>
</html>

2.页面2

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
 <%@ page errorPage="/error.jsp" %> //关闭将不能获取错误信息
 <!-- 默认是关闭状态 打开捕获异常信息的对象 创建 Throowable-->
 <%@ page isErrorPage="true" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<% 
   String msg = exception.getMessage();//获取错误信息
   out.print(msg);
%>
服务器正在紧张的建设当中..请稍后访问..
</body>
</html>
5.测试jsp动静包含与taglib标签
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <!-- include指令 file指 包含哪个页面
    静态包含:在翻译成.java文件前 就已经合成了页面
    动态包含:代码执行到动态包含时才会去编译被包含的页面
    -->
<%-- <%@include file="/4.jsp" %> --%>
<!-- 动态包含 -->
<%-- <jsp:include page="/4.jsp"></jsp:include> --%>
<!-- taglib标签 导入jstl核心库 -->
<!-- prefix= "c" 表示给jstl标签库中的标签 起一个别名 -->
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix= "f" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
  aaaaaaaa
<f:out value="1456"></f:out>
<f:if test="aaaaaaaa"></f:if>

   <!--  https://mvnrepository.com/  jar包下载地址 -->
</body>
</html>

5.jsp对象的操作

5.1 创建一个对象
package com.lanou3g;

public class User {
     private String name;
     private  String pwd;
    public User() {
        super();
        // TODO Auto-generated constructor stub
    }
    public User(String name, String pwd) {
        super();
        this.name = name;
        this.pwd = pwd;
    }
    @Override
    public String toString() {
        return "User [name=" + name + ", pwd=" + pwd + "]";
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getPwd() {
        return pwd;
    }
    public void setPwd(String pwd) {
        this.pwd = pwd;
    }
}
5.2jsp对象动作操作
<%@ page import="com.lanou3g.User"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%  /* 创建一个User对象 */
User user = new User();
user.setName("wanglong");
user.setPwd("123");
out.print(user.getName());
%>
     <br/><hr/>
     <jsp:useBean id="user1" class="com.lanou3g.User"/>
     <jsp:setProperty property = "name" name="user1" value="dp"/>
     <jsp:setProperty property = "pwd" name="user1" value="456"/>
      <%=user1.getName() %>
      <%=user1.getPwd() %>
     <br/><hr/>
    <jsp:getProperty property="name" name="user1"/>
     <jsp:getProperty property="pwd" name="user1"/> 
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值