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/23Time: 10:54To 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页面的默认缓冲大小 8kbsession="true"session 默认开启,如果选择不开启session,属性值为falseisELIgnored="true"  jsp页面是否支持EL表达式,默认支持,不支持属性值为falseisErrorPage="false"   当前jsp页面是否为错误页面,默认不是,如果需要设置为错误页面 属性值为trueerrorPage="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;}@Overridepublic String toString() {return "Student{" +"id=" + id +", name='" + name + '\'' +", age=" + age +'}';}
}
<%--Created by IntelliJ IDEA.User: 刘朝阳Date: 2020/5/23Time: 11:41To 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/23Time: 11:57To 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/23Time: 14:48To 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>

JSP和敏感词汇过滤相关推荐

  1. 优秀博客 --敏感词汇过滤

    2019独角兽企业重金招聘Python工程师标准>>> 敏感词汇过滤 http://www.cnblogs.com/chenssy/p/3751221.html#2966041 树上 ...

  2. 动态代理的分析以及利用动态代理模式进行敏感词汇过滤

    动态代理 增强对象的功能: 设计模式:一些通用的解决固定问题的方式 代理模式 概念: (1). 真实对象:被代理的对象 (2). 代理对象: (3). 代理模式:代理对象代理真实对象,达到增强真实对象 ...

  3. Java基于Socket实现聊天、群聊、敏感词汇过滤功能

    首先的话,这个代码主要是我很久以前写的,然后当时还有很多地方没有理解,现在再来看看这份代码,实在是觉得丑陋不堪,想改,但是是真的改都不好改了- 所以,写代码,规范真的很重要. 实现的功能: 用户私聊 ...

  4. 【敏感词汇过滤算法】基于DFA-前缀树的敏感词汇过滤算法(项目实用)

    在敏感词汇过滤这块,不同的算法所造成的性能差异是非常大的,选择一个合适的算法非常重要.因为以前做算法的时候做过类似前缀树的字符串匹配之类的算法,所以一开始就打算用前缀树做的,后面了解了一下DFA的相关 ...

  5. PHP敏感词汇过滤SDK(树形结构遍历命中违禁词)

    先介绍一下匹配敏感词原理吧,因为没有工具,画的很糙,有疑问直接联系我.(绿色箭头代表命中敏感词,灰色:未命中) base 确定有穷自动机(DFA)算法 比如说"可以"是敏感词,那么 ...

  6. Filter - 通过拦截器与动态代理实现敏感词汇过滤

    需求:将敏感词汇.txt文件中的词语过滤为 -> "***" 分析: 首先加载文档,将文档中的词汇纳入集合中备用,方便后期比对使用. 使用Proxy动态代理将request对 ...

  7. 敏感词汇过滤(不区分大小写)

    最近项目中,用户评论内容需要屏蔽敏感词汇,从网上总结以下方法,(不区分大小写,如想设置大小写敏感,可以把代码中content..toLowerCase()去掉).具体看代码: 1.读取敏感词汇文档 & ...

  8. C#敏感词汇过滤(不是正则)

    System.Text.StringBuilder sb = new System.Text.StringBuilder(text.Length);   string filterText = &qu ...

  9. 小程序敏感词汇过滤之输入什么都返OK

    1.post提交 2.post过去的数据编码为utf-8   注意:不仅仅是评论内容为utf-8,不然会导致你输入什么都返回ok $msg = json_encode(array('content'= ...

最新文章

  1. 无线网卡服务端工具airserv-ng
  2. 深度学习笔记 第四门课 卷积神经网络 第四周 特殊应用:人脸识别和神经风格转换...
  3. ACL 2020 | 多跳问答的基于对齐的无监督迭代解释检索方法
  4. 从Sun离职后,我“抛弃”了Java,拥抱JavaScript和Node
  5. 华为为什么要“囤”700名数学家,中科院院士告诉你
  6. 路由器有一个android设备连接不上,Android http连接 – 多个设备无法连接同一台服务器...
  7. 桌面显示计算机打开 磁盘不,电脑上的盘符打不开了怎么办
  8. dlink虚拟服务器端口转发,D-Link路由器端口转发怎么设置【图文教程】
  9. gliffy confluen插件gliffy-confluence-plugin-5.1.ja破解
  10. Java Web程序设计笔记 • 【第1章 Web应用程序】
  11. win10电脑不显示手机连接服务器失败,技术员教你解决win10系统手机连接不上电脑没反应的操作办法...
  12. 蓝牙调试器-划时代无线调试器
  13. 计算机Web书籍推荐
  14. Spring boot in action pdf+源码
  15. 太阳能最佳倾角c语言编程,用C语言编程计算太阳的高度角,用于控制太阳能电板最佳的倾角...
  16. Android 通过 WebView 请求下载 APK
  17. 8个商用图片素材库,你一定要收藏
  18. 去掉Word2007文档眉头的横线
  19. 哪些类型的初创公司最有利可图?
  20. Python一键生成纯色图片

热门文章

  1. 如何成为一名优秀的C++程序员
  2. 判断是为魅族系统(Flyme OS)
  3. 数据采集那些被低估的价值
  4. 将微信订阅号的用户消息发到自己的服务器
  5. 美国护照持有者能前往的目的地从185个下降为不到75个
  6. 10kV光伏并网用电能质量在线监测装置
  7. 抓取微信公众号文章(抓取网页)
  8. 连接kafka报错:1 partitions have leader brokers without a matching listener
  9. js正则只允许输入数字和字母
  10. mac创建react项目报错 :Aborting installation. npm install --save --save-exact --loglevel error react reac