文档章节

JSP中的Java代码和内置对象

o
 osc_w9s1w4o0
发布于 2019/04/03 16:04
字数 1613
阅读 24
收藏 0

精选30+云产品,助力企业轻松上云!>>>

一、JSP中的Java代码

(一)JSP页面中有三种方式嵌入java代码:

1、java的表达式

  格式:<%= java表达式 %>

2、java的语句

  格式:<% java语句>

3、java的声明

  格式:<%!成员方法的声明%>

JSP中的java的表达式:<%= java表达式 %>

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%@page import="java.util.Date"%> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>第一个JSP页面</title> </head> <body> <%= new java.util.Date() %><br/>
   <input type="text" value="<%= new Date()%>" /> </body> </html>

JSP中的java语句:<% 语句;%>

示例

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%@page import="java.util.Date"%>
<%SimpleDateFormat sdf = new SimpleDateFormat(yyyy-MM-dd);%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>第一个JSP页面</title>
</head>
<body>
    <%= sdf.format(new java.util.Date()) %><br/>
   <input type="text" value="<%=sdf.format(new Date())%>" />
</body>
</html>

JSP中的java声明:<%! java的声明(成员方法,成员变量)%>

示例:九九乘法表

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%! 
  //九九乘法表 private String nineTable(){ StringBuilder builder = new StringBuilder(); for(int i=1;i<=9;i++){ for(int j=1;j<i;j++){ builder.append(i + "*" + j + "=" + i*j + "&nbsp;&nbsp;&nbsp;&nbsp;"); } builder.append("<br/>"); } return builder.toString(); } %> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>九九乘法表</title> </head> <body> <% nineTable() %> </body> </html>

结果:

二、JSP内置对象

(一)内置对象:在JSP页面中,直接可以使用的对象,这些对象从可见范围从大到小:

application:表示一个应用,其中放置的内容任何会话都可访问 ——内置对象类型:javax.servlet.ServletContext

session:表示一次会话——内置对象类型:javax.servlet.http.HttpSession

request:表示一次请求——内置对象类型:javax.servlet.http.HttpServletRequest request

response:表示一次响应——内置对象类型:javax.servlet.http.HttpServletResponse

out:表示在页面输出——内置对象类型:javax.servlet.jsp.JspWrite

page:表示页面对象——内置对象类型:java.lang.Object

config:表示配置对象——内置对象类型:javax.servlet.ServletConfig

exception:表示异常——内置对象类型:java.lang.Throwable,一般不是错误处理页是没有这个对象的,只有当page指令的isErrorPage="true"时才有这个对象

pageContent:表示页面范围对象——内置对象类型:

(二)JSP执行过程

JSP是一种服务端的技术,其执行过程

1、JSP页面在服务端要转换成 .java文件,命名规则:jsp文件主名_jsp.java

2、JSP页面在第一次请求时转换后的java文件会被编译生成 .class文件

3、执行 .class文件

(三)JSP当中表示范围的内置对象

表示范围的对象有以下操作:

在范围对象中旋转内容,都会有这些方法:

1、放置数据:setAttribute(key,value),以属性的方式放置

例如:

application.setAttribute(key,value);

session.setAttribute(key,value);

request.setAttribute(key,value);

pageContext.setAttribute(key,value);

2、取出范围对象中的数据:getAttribute(key);

application.getAttribute(key);

session.getAttribute(key);

request.getAttribute(key);

pageContext.getAttribute(key);

(四)内置对象的应用场景

场景一:统计一个站点的访问量

分析:用户的每次请求是不能加的,只有当一个新用户请求才能加,在B/S应用当中,一个会话就表示一个用户,如何表示一个新用户,就要使用session。

 示例:想截图来着想了下还是敲吧........

 1 <%@ page language="java" contentType="text/html; charset=utf-8"
 2     pageEncoding="utf-8"%>
 3 <%
 4     int count = 0;
 5     Object obj = application.getAttribute("count");
 6     if(obj!=null){
 7         //取出application中的count
 8         count = (int)application.getAttribute("count");
 9      //判断一个会话是否是一个新会话,只有当一个会话是一个新的session才加
10         if(session.isNew){
11             count++;
12       }
13     //将计数器放置在application中
14         application.setAttribute("count",count);
15 }
16     else{
17         if(session.isNew(){
18             count++;
19       }
20           application.setAttribute("count",count);
21 }
22     count = (int)application.getAttribute("ccount");
23 %>
24 <!DOCTYPE html>
25 <html>
26 <head>
27 <metf-8">
28 <title>计数器</title>
29 </head>
30 <body>
31     您是第<%= count%>个用户
32 </body>
33 </html>

 示例编写用户登录:

第一步:编写登录的页面

 action="processlogin.jsp"  、    method="post"    这里画出来的意思我这里说一下:

 action="processlogin.jsp":是指发送信息的目地为后台  processlogin.jsp  的数据库。

  method="post":method 属性规定如何发送表单数据(表单数据发送到 action 属性所规定的页面)。表单数据可以作为 URL 变量(method="get")或者 HTTP post (method="post")的方式来发送。

通俗点说就是 method 就是你用的交通工具,action 就是你的目的地。

第二步:

第三步:

结果:

 

 最后详细说下表单中的 method="post" 

表示表单中的数据以"post"方法传递。
Form提供了两种数据传输的方式——get和post。虽然它们都是数据的提交方式,但是在实际传输时确有很大的不同,并且可能会对数据产生严重的影响。虽然为了方便的得到变量值,Web容器已经屏蔽了二者的一些差异,但是了解二者的差异在以后的编程也会很有帮助的。
Form中的get和post方法,在数据传输过程中分别对应了HTTP协议中的GET和POST方法。二者主要区别如下:
1、Get是用来从服务器上获得数据,而Post是用来向服务器上传递数据。
2、Get将表单中数据的按照variable=value的形式,添加到action所指向的URL后面,并且两者使用“?”连接,而各个变量之间使用“&”连接;Post是将表单中的数据放在form的数据体中,按照变量和值相对应的方式,传递到action所指向URL。
3、Get是不安全的,因为在传输过程,数据被放在请求的URL中,而如今现有的很多服务器、代理服务器或者用户代理都会将请求URL记录到日志文件中,然后放在某个地方,这样就可能会有一些隐私的信息被第三方看到。另外,用户也可以在浏览器上直接看到提交的数据,一些系统内部消息将会一同显示在用户面前。Post的所有操作对用户来说都是不可见的。
4、Get传输的数据量小,这主要是因为受URL长度限制;而Post可以传输大量的数据,所以在上传文件只能使用Post(当然还有一个原因,将在后面的提到)。
5、Get限制Form表单的数据集的值必须为ASCII字符;而Post支持整个ISO10646字符集。
6、Get是Form的默认方法。
使用Post传输的数据,可以通过设置编码的方式正确转化中文;而Get传输的数据却没有变化。

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
Day9 JSP

JSP概述 JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术。JSP实际上就是Servlet。 jsp = html + java html:静态内容 servlet:服务器端的...

osc_uaz823pt
2018/01/31
1
0
jsp和servlet的区别

jsp经编译后就变成了Servlet.(JSP的本质就是Servlet,JVM只能识别java的类,不能识别JSP的代码,Web容器将JSP的代码编译成JVM能够识别的java类) jsp更擅长表现于页面显示,servlet更擅长于逻辑...

黄粱一梦x
2019/04/23
5
0
JSP

JSP 入门学习 概念: 原理 JSP的脚本:JSP定义Java代码的方式 JSP常用的内置对象 指令 作用:用于配置jsp页面,导入资源文件 格式: <%@ 指令名称 属性名1=属性值1 属性名2=属性值2.。。。 ...

cjd
05/04
0
0
jsp技术

前言: 我是一名Java后台学习者,但是后台程序员也需要掌握一定的前端技术。虽然说现在前端基本上是react、vue、angular三分天下,但是作为一名Java程序员,如果说不会jsp,那未免有点说不过...

贪挽懒月
2018/09/11
0
0
JavaWeb---jsp、自定义标签

DAY12 4 Jsp基础 4.1 Jsp引入 Servlet的作用: 用java语言开发动态资源的技术!!! Jsp的作用:用java语言(+html语言)开发动态资源的技术!!! Jsp就是servlet!!! 4.2 Jsp的特点 1)j...

xili80
2019/06/10
6
0

没有更多内容

加载失败,请刷新页面

加载更多

我们一定会在人生的更高处相见的

2020.6.7 我知道没人会看到 2021.6.7 我再来写下 每天进步一点点 一年后我就是不一样的我 你也是。 高考加油!

osc_9oidllr2
35分钟前
16
0
esp8266物联网开发一:MicroPython初战江湖

用esp8266做的物联网开发,涉及到固件烧写,固件擦除,代码编写等方面,做一一记录。 1. 固件烧写 首先,下载固件烧写工具:https://www.espressif.com/sites/default/files/tools/flash_dow...

osc_s2b5kacl
36分钟前
20
0
获小黄衫有感

这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzu/2020SpringW/ 一、与软工的开始 在选课的时候咨询学长意见,听上届学长说这门课会有寒假作业,心里很忐忑,又抱有侥幸心理——可能...

osc_r5t7sskd
37分钟前
9
0
ppt 视频不显示控制条

1 正常解决方法 2 如果还不能显示可能是ppt是兼容模式,另存为非兼容模式就好了 后缀是.ppt 现存就好了

osc_hzf6peqc
38分钟前
20
0
五笔经常打不出来的字:温故而知新

遍 ynmp 凸凹 hgmm 凸 hgm 凹mmgd

osc_iy56i6w3
40分钟前
14
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部