脚本程序

<> 或者,您也可以编写与其等价的XML语句,就像下面这样: <jsp:scriptlet> 代码片段 </jsp:scriptlet>任何文本、HTML标签、JSP元素必须写在脚本程序的外面。 ###中文编码问题 如果我们要在页面正常显示中文,我们需要在 JSP 文件头部添加以下代码:<>

JSP声明

JSP表达式

<%@ directive attribute="value" %>

JSP内置对象

1.内置对象简介(web容器创建的 不需要new)

  1. 四种作用域范围
  2. out(是JSPWriter的一个实例,是向客户端输出内容常用的对象)

void println();void clear() 清除缓冲区的内容

  1. request/response(请求与响应模式)
    5 session
  2. application
  3. 其他内置对象

JSP客户端请求
当浏览器请求一个网页时,它会向网络服务器发送一系列不能被直接读取的信息,因为这些信息是作为HTTP信息头的一部分来传送的

HTTP请求例子

在这个例子中,我们会使用HttpServletRequest类的getHeaderNames()方法来读取HTTP信息头。这个方法以枚举的形式返回当前HTTP请求的头信息。
获取Enumeration对象后,用标准的方式来遍历Enumeration对象,用hasMoreElements()方法来确定什么时候停止,用nextElement()方法来获得每个参数的名字

 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
2 pageEncoding="UTF-8"%>
3 <%@ page import="java.io.*,java.util.*" %>
4 <!DOCTYPE html>
5 <html>
6 <head>
7 <meta charset="utf-8">
8 <title>菜鸟教程(runoob.com)</title>
9 </head>
10 <body>
11 <h2>HTTP 头部请求实例</h2>
12 <table width="100%" border="1" align="center">
13 <tr bgcolor="#949494">
14 <th>Header Name</th><th>Header Value(s)</th>
15 </tr>
16 <%
17 Enumeration headerNames = request.getHeaderNames();
18 while(headerNames.hasMoreElements()) {
19 String paramName = (String)headerNames.nextElement();
20 out.print("<tr><td>" + paramName + "</td>\n");
21 String paramValue = request.getHeader(paramName);
22 out.println("<td> " + paramValue + "</td></tr>\n");
23 }
24 %>
25 </table>
26 </body>
27 </html>

JSP服务器响应

Response响应对象主要将JSP容器处理后的结果传回到客户端。可以通过response变量设置HTTP的状态和向客户端发送数据,如Cookie、HTTP文件头信息等。

HTTP响应头程序示例

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.io.*,java.util.*" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
</head>
<body>
<h2>自动刷新实例</h2>
<%
// 设置每隔5秒自动刷新
response.setIntHeader("Refresh", 5);
// 获取当前时间
Calendar calendar = new GregorianCalendar();
String am_pm;
int hour = calendar.get(Calendar.HOUR);
int minute = calendar.get(Calendar.MINUTE);
int second = calendar.get(Calendar.SECOND);
if(calendar.get(Calendar.AM_PM) == 0)
am_pm = "AM";
else
am_pm = "PM";
String CT = hour+":"+ minute +":"+ second +" "+ am_pm;
out.println("当前时间: " + CT + "\n");
%>
</body>
</html>
 
 

Http状态吗实例

 
 <html>
<head>
<title>Setting HTTP Status Code</title>
</head>
<body>
<%
// 设置错误代码,并说明原因
response.sendError(407, "Need authentication!!!" );
%>
</body>
</html>

Get获取URL

 <%--
Created by IntelliJ IDEA.
User: tangwei9
Date: 2017/7/14
Time: 10:22
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import ="java.io.*,java.util.*"%>
<html>
<head>
<title>GET方式请求实例</title>
</head>
<body>
<h1>Get方式获取URL</h1>
<u1>
<li><p><b>站点名</b>
<%= request.getParameter("name")%>
</p>></li>

<li><p><b>网址名</b>
<%= request.getParameter("url")%>

</p>></li>

</u1>
</body>
</html>
 

JSP Cookie

设置Cookie

<%
String str = URLEncoder.encode(request.getParameter("name"),"utf-8");

// 设置 name 和 url cookie
Cookie name = new Cookie("name",str);

Cookie url = new Cookie("url",request.getParameter("url"));

//设置Cookie的时间为1天

name.setMaxAge(60*60*24);
name.setMaxAge(60*60*24);

//在响应头添加Cookie

response.addCookie(name);
response.addCookie(url);



%>

读取Cookie

 <%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.net.*" %> <%
Cookie cookie = null;
Cookie[] cookies = null;
// 获取cookies的数据,是一个数组
cookies = request.getCookies();
if( cookies != null ){
out.println(""); for (int i = 0; i < cookies.length; i++){
cookie = cookies[i];
out.print("参数名 : " + cookie.getName());
out.print("<br>");
out.print("参数值: " + URLDecoder.decode(cookie.getValue(), "utf-8") +" <br>");
out.print("------------------------------------<br>");
}
}else{
out.println("没有发现 Cookie"); } %>

删除Cookie

 <%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.net.*" %> <%
Cookie cookie = null;
Cookie[] cookies = null;
// 获取当前域名下的cookies,是一个数组
cookies = request.getCookies();
if( cookies != null ){
out.println("查找 Cookie 名与值");for (int i = 0; i < cookies.length; i++){ cookie = cookies[i]; if((cookie.getName( )).compareTo("name") == 0 ){
cookie.setMaxAge(0);
response.addCookie(cookie);
out.print("删除 Cookie: " +
cookie.getName( ) + ");
"
}
out.print("参数名 : " + cookie.getName());
out.print(""); out.print("参数值: " + URLDecoder.decode(cookie.getValue(), "utf-8") +" "); out.print("------------------------------------"); }
}else{
out.println("没有发现 Cookie"); }
%>

JSP Session

 <%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.io.,java.util." %>
<%
// 获取session创建时间
Date createTime = new Date(session.getCreationTime());
// 获取最后访问页面的时间
Date lastAccessTime = new Date(session.getLastAccessedTime()); String title = "再次访问菜鸟教程实例";
Integer visitCount = new Integer(0);
String visitCountKey = new String("visitCount");
String userIDKey = new String("userID");
String userID = new String("ABCD"); // 检测网页是否由新的访问用户
if (session.isNew()){
title = "访问菜鸟教程实例";
session.setAttribute(userIDKey, userID);
session.setAttribute(visitCountKey, visitCount);
} else {
visitCount = (Integer)session.getAttribute(visitCountKey);
visitCount += 1;
userID = (String)session.getAttribute(userIDKey);
session.setAttribute(visitCountKey, visitCount);
}
%>

文件上传代码

http://www.runoob.com/jsp/jsp-file-uploading.html

重定向百度代码

 <%
String site = new String("http://www.baidu.com");
response.setStatus(response.SC_MOVED_TEMPORARILY);
response.setHeader("Location",site);

%>

访问量统计

<%
Integer count = (Integer) application.getAttribute("count");
if(count == null || count == 0){
out.print("<br>第一次访问</br>");
count = 1;
}else
{
out.print("欢迎访问本站");
count++;
}
application.setAttribute("count",count);
%>
<p>页面的访问量为:<%= count%></p>> 发送邮件

http://www.runoob.com/jsp/jsp-sending-email.html

JSP操作数据库

http://www.runoob.com/jsp/jsp-database-access.html

那些你常用的JSP知识的更多相关文章

  1. Ext常用开发基础知识

    Ext常用开发基础知识 组件定义 //这种方法可以缓存所需要的组件 调用起来比较方便(方法一 ) Ext.define('MySecurity.view.home.HomePanel', { //添加 ...

  2. 常用的JSP内置对象(1)

    常用的JSP内置对象 request对象主要用于处理客户端请求 request对象的作用是与客户端交互,收集客户端的Form.Cookies.超链接,或者收集服务器端的环境变量. request对象常 ...

  3. JSP知识汇总

    JSP知识汇总 一.简介 > HTML - HTML擅长显示一个静态的网页,但是不能调用Java程序. > Servlet - Servlet擅长调用Java程序和后台进行交互,但是它不擅 ...

  4. Web测试的常用测试用例与知识

    1. Web测试中关于登录的测试 2. 搜索功能测试用例设计 3. 翻页功能测试用例 4. 输入框的测试 5. Web测试的常用的检查点 6. 用户及权限管理功能常规测试方法 7. Web测试之兼容性 ...

  5. JSP知识

    五.JSP概述及最佳实践1.更改MyEclipse生成的JSP模板.模板文件与Servlet.java(Servlet模板文件)很近.2.学好JSP的关键:JSP就是Servlet.一定要记住JSP中 ...

  6. JSP知识体系大全

    Jsp动态网页 Web页面之间有3种关系: 包含  请求转发  重定向 l Jsp的运行原理:(3个) Jsp页面不能直接运行 1.容器调用jsp引擎编译jsp文件  成一个java文本(Servle ...

  7. VerilogHDL常用的仿真知识

    在描述完电路之后,我们需要进行对代码进行验证,主要是进行功能验证.现在验证大多是基于UVM平台写的systemverilog,然而我并不会sv,不过我会使用verilog进行简单的验证,其实也就是所谓 ...

  8. JSP 知识基本

    from:http://blog.csdn.net/caipeichao2/article/details/38589293 more:http://www.2cto.com/kf/web/jsp/4 ...

  9. 开发中常用的es6知识

    结合实际开发,开发中常用的es6的知识: 1.新增let和const命令: ES6 新增了let命令,用来声明变量.它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效: cons ...

随机推荐

  1. [AGC006] D - Median Pyramid Hard 二分

    Description ​ 现在有一个NN层的方块金字塔,从最顶层到最底层分别标号为1...N1...N. ​ 第ii层恰好有2i−12i−1个方块,且每一层的中心都是对齐的. 这是一个N=4N=4的 ...

  2. networkX如何读取存储图的二进制.dat文件

    一般情况下,.dat文件存储的是图的二进制邻接矩阵. import networkx as nx G = nx.readadjlist('auth_graph.dat')

  3. 存入azure table时忽略某个属性

    public class CustomTableEntity : TableEntity { public override IDictionary<string, EntityProperty ...

  4. 老男孩Day16作业:登录、注册、后台管理页面(动态)

    一.作业需求: 1.后台管理主界面(左边菜单框.(全选.反选)框.返回顶部按钮) 2.老男孩登录.注册页面 二.博客地址:https://www.cnblogs.com/catepython/p/93 ...

  5. [转][Unity3D]引擎崩溃、异常、警告、BUG与提示总结及解决方法

    1.U3D经常莫名奇妙崩溃.   一般是由于空异常造成的,多多检查自己的引用是否空指针.   2.编码切换警告提示.   警告提示:Some are Mac OS X (UNIX) and some ...

  6. .Net Core 使用swagger UI

    swagger UI 第一步:首先添加包Swashbuckle.AspNetCore (可通过微软添加包命令Install-Package 包名进行添加,也可以通过管理NuGet程序包进行添加) 第二 ...

  7. C++_基础4-分支语句和逻辑运算符

    这一部分截取自<C++ Primer Plus>,内容比较简单,很多只取了一些主题关键词,有空再补充: 设计智能程序的一个关键是使程序具有决策能力. 前面一种方式是循环——程序决定是否继续 ...

  8. rest-assured的日志使用介绍

    在许多测试用例当中,为了帮助我们创建正确的断言和发送正确的请求,打印出详细的响应和请求数据是非常有用的.为此我们可以使用rest-assured提供的预定义过滤器或者使用其中的一些快捷方法. 一.请求 ...

  9. 洛谷 P1272 重建道路

    题目链接 题解 树形dp \(f_{i, j}\)表示以\(i\)为根的子树切出联通块大小为\(j\)的最小答案 显然\(f[i][1]\)为与\(i\)连的边数 设\(v\)是\(u\)的儿子 那么 ...

  10. 215 Kth Largest Element in an Array 快排

    题目:在无序的数组中找到第k大的元素,也就是若长度为n的数组从小到大排列时,下标为n-k的元素. 注意Example2:第4大的元素是4,也就是数组中出现的两个5分别是第2大和第3大的数字. 解法一: ...