JSP和敏感词汇过滤
1.JSP1.1 JSP概述全称:Java Server PageJava服务器页面,和Servlet一样,都是Sun公司提供的动态资源开发技术。兼容HTML,CSS,JavaScript,还可以运行Java代码。可以同时在设计完成前端页面,优化美化,情况下做java后台逻辑代码实现1.2 为什么要用JSP1.jsp目前没有了解过前端解析数据方式情况下,和java后台的融合性更好2.jsp最终编译
1.JSP
1.1 JSP概述
全称:
Java Server Page Java服务器页面,和Servlet一样,都是Sun公司提供的动态资源开发技术。兼容HTML,CSS,JavaScript,还可以运行Java代码。
可以同时在设计完成前端页面,优化美化,情况下做java后台逻辑代码实现
1.2 为什么要用JSP
1.jsp目前没有了解过前端解析数据方式情况下,和java后台的融合性更好
2.jsp最终编译的结果就是一个Servlet程序
3. jsp兼容性还可以,性能也不错
4.可以让Servlet摆脱内嵌HTML页面的情况
5.jsp是一个动态资源,和HTML页面不一样
1.3 JSP语法
1.3.1 JSP语法格式
JSP页面中可以包含任何的JAVA代码,变量,语句和方法
格式:
<% java代码 %>
声明局部变量:
<% int i=10;%>
声明全局变量:
<% int i =10;%>
输出变量:
<%=2+3%> 输出语句没有分号结尾
jsp注释【重点】
<% --jsp注释--> 安全,省流量
<!-- 网页注释 -->不安全,耗流量
<%--
Created by IntelliJ IDEA.
User: 刘朝阳
Date: 2020/5/23
Time: 10:54
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>01-第一行</title>
</head>
<body>
<%
System.out.println("你好,jsp");
%>
<%=2+3%>
<% int c = 10;%>
<h1><%=c%></h1>
<%!
public void show(){
System.out.println("您好,jsp");
}
%>
<%
show();
%>
</body>
</html>
1.3.2 JSP指令
page指令
<%-- 告知jsp页面当前页面内容是HTML内容,编码集是UTF-8 解析使用语言是java语言--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page contentType="text/html;charset=UTF-8"
import 导包,和java代码操作一致,导入当前jsp页面所需的资源
language="java" 解析当前jsp使用的语言
pageEncoding="utf-8" 当前页面的编码集
buffer="8kb" jsp页面的默认缓冲大小 8kb
session="true"session 默认开启,如果选择不开启session,属性值为false
isELIgnored="true" jsp页面是否支持EL表达式,默认支持,不支持属性值为false
isErrorPage="false" 当前jsp页面是否为错误页面,默认不是,如果需要设置为错误页面 属性值为true
errorPage="url" 指定当前JSP 页面发送错误之后,跳转到那一个错误页面
%>
include指令
包含其他的jsp页面,可以使静态包含,也可是动态包含
静态包含:
<% include file = "xxx.jsp"%>
动态包含:
<jsp:include page="xxx.jsp"></jsp:include>
静态包含其他jsp页面,将其他页面编译时合并
动态包含是当前jsp页面运行到jsp.include时才会加载对应的jsp资源,并不会合并两个jsp页面
<% @include flie= "head.jsp"%>
<% @include flie= "left.jsp"%>
taglib 指令:
作用: 导入其他标签库
1.3.3 jsp动作
这里可以使用一部分的JSP标签来表示一定的java代码
jsp:include 动态包含
jsp:forword 转发
jsp:param 请求设置参数
jsp:useBean 创建一个对象
jsp:setProperty 给指定的对象对应属性赋值
jsp:getProperty 从指定的对象对应属性取值
package com.q;
public class Student {
private Integer id;
private String name;
private Integer age;
public Student() {
}
public Student(Integer id, String name, Integer age) {
this.id = id;
this.name = name;
this.age = age;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
@Override
public String toString() {
return "Student{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
'}';
}
}
<%--
Created by IntelliJ IDEA.
User: 刘朝阳
Date: 2020/5/23
Time: 11: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>
<jsp:useBean id="id" beanName="stu" class="com.q.Student" ></jsp:useBean>
<jsp:setProperty name="id" property="id" value ="1"></jsp:setProperty>
<jsp:setProperty name="id" property="name" value="小明"></jsp:setProperty>
<jsp:setProperty name="id" property="age" value="16"></jsp:setProperty>
<%=id%>
</body>
</html>
1.4 JSP内置对象【重点】
对象名 | 类型 | 说明 |
request | javax.servlet.html.HttpServletRequest | 用户请求对象 |
response | javax.servlet.html.HttpServletResponse | 服务器对应用户的请求 |
session | javax.servlet.html.HttpServletSession | Session会话控制对象 |
application | javax.servlet.html.HttpServletContext | 整个项目的上下文对象 |
exception | java.lang.Throwable | 异常;isErrorPage="true" |
page | java.lang.Object==>this对象 | JSP==>Servlet this对象 |
config | javax.servlet.ServletConfig | servlet配置对象 |
out | javax.servlet.jsp.JspWriter | 类似于rep.getWriter |
pageContext | javax.servlet.jsp.PageContext | 当前页面对象上下文 |
<%--
Created by IntelliJ IDEA.
User: 刘朝阳
Date: 2020/5/23
Time: 11:57
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>
<%
//内置对象可以直接使用
pageContext.setAttribute("msg","PageContext Message");
%>
<h1><%=pageContext.getAttribute("msg")%></h1>
<% response.getWriter().append("<h2>Hello</h2>");
out.print("测试");
%>
</body>
</html>
1.5 域对象【重点】
域对象都可以操作以下三个方法
setAttribute(String name,Object value)
Object getAttribute(String name)
void removeAttribute(String name)
可以利用域对象的特征,设置一定的属性放入到域对象内
在jsp中使用的四个域对象
pageContext
request
session
application
pageContext存在一定的特权,通过pageContext可以操作其他域对象
setAttribute(String name,Object value,int scope)
Object getAttribute(String name,int scope)
void removeAttribute(String name,int scope)
scope是域对象标记,这里使用了一个常量、
域对象表示一个常量,存在于PageContext类内
PageContext.PAGE_SCOPE;
PageContext.REQUEST_SCOPE
PageContext.SESSION_SCOPE
PageContext.APPLICATION_SCOPE
<%@ page import="com.q.Student" %><%--
Created by IntelliJ IDEA.
User: 刘朝阳
Date: 2020/5/23
Time: 14:48
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>06-域对象</title>
</head>
<body>
<%
pageContext.setAttribute("msg","PageContext Message");
request.setAttribute("msg","Requset Message");
session.setAttribute("msg","Session Messafe");
application.setAttribute("msg","Application Message");
Student stu = new Student(1, "小李", 16);
request.setAttribute("stu",stu);
%>
<%--
数据检索顺序是从Page》Request》Session》Application
--%>
<h1>${msg}</h1>
<h2>${stu.id}</h2>
<h2>${stu.name}</h2>
<h2>${stu.age}</h2>
</body>
</html>
更多推荐
所有评论(0)