本篇内容介绍了“jsp中嵌入java代码的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
jsp的出现是为了解决Serlvet中拼接大量的html代码的问题,同时在jsp技术中可以直接书写html,js,css和java代码。
jsp中可以写java代码,但是需要使用相应的标签来封装java代码,有三种方式:
<%! %>: jsp脚本声明,可以书写成员变量,方法以及内部类
<%! //声明变量 int a = 1; //方法 public void show() { System.out.println(a); } //成员内部类 class Inner{} %>
<%= %>: jsp脚本表达式,用于直接输出数据
<!-- 需要注意的是jsp脚本表达式,在书写表达式的时候,后面不能添加分号 --> <%="aaa"+123+"bvd"%> <!-- 脚本表达式可以用于输入html源码信息 --> <%="<font color='red'>hello</font>"%>
<% %>: jsp的脚本片段,可以将java代码和html代码进项嵌套混合书写
<% for (int i = 0; i < 10; i++) { if (i % 2 == 0) { %> <!-- 这里是嵌套的html代码 --> <font color='red'> <%=i%> </font> <% } else { %> <!-- 这里是嵌套的html代码 --> <font color='red'> <%=i%> </font> <% } } %>
EL全名为Expression Language,他的功能主要是在jsp页面上,从不同范围内取出数据,这里所说的范围是ServletContext范围和Request。servlet中,servletContext代表当前这个web项目,每一个项目有一个唯一的ServletContext和其对应,因此放在servletContxt中的数据,在jsp页面可以通过el表达式取出,同时每一个请求,都表示一个request对象,所以在request对象中存放的数据,在jsp页面也是可以使用el表达式取出。形式为**${key}**
cookie本身依然是服务器内部的一个对象,只是这个对象最终会在响应中给客户端对象,客户端(一般是浏览器)会识别cookie信息,同时在后续的访问过程中浏览器会将这个cookie携带在请求头中一起发送给服务器。
浏览器携带cookie的特性,是由w3c的http协议规定的,并且会在请求头中携带,如果响应的数据中含有cookie,cookie也是在响应的头中(注意不是在响应体中)。 从上面的客户端与服务端的连接可以知道cookie属于会话技术。
用户在打开浏览器访问服务器,在一系列的访问过程中把用户的这些操作称为用户和服务器之间的对话(客户端和服务端的会话),在交互过程中,用户的一系列操作,会产生一些数据需要保存,此时就需要使用到cookie或者session(下一篇介绍)技术。
package top.cookies; import javax.servlet.http.Cookie; import java.io.IOException; public class cookieServlet extends javax.servlet.http.HttpServlet { protected void doGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException { Cookie cookie = new Cookie("name", "testCookie"); // response.addCookie(cookie); response.getWriter().write("helloworld"); } }
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0"> <servlet> <servlet-name>Servlet</servlet-name> <servlet-class>top.cookies.cookieServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>Servlet</servlet-name> <url-pattern>/cookie</url-pattern> </servlet-mapping> </web-app>
这里首先是将response.addCookie(cookie);这一句代码给注释掉了,也就是返回的数据中是没有cookie的,此时结果如下:
现在将注释的那一句代码给放开,此时请求结果如下:
可以看到response中已经有了cookie的信息,但是请求头中是没有cookie的信息的。
在第一次请求时由于在响应中设置了cookie,所以在第二次请求的时候请求头中应该携带cookie信息的,此时结果如下:
可以看到在请求头中是包含cookie信息的。
设置cookie是服务端设置后给到客户端,那么获取cookie实际上就是从请求头中获取cookie,也就是从httpServletRequest对象中获取cookie,由于用户可以携带有多个cookie,因此可以使用getCookies()方法获取cookie数组。
Cookie[] cookies = request.getCookies(); for (Cookie cookie: cookies ) { System.out.println(cookie.getName() + "--" + cookie.getValue()); }
cookie主要是分为两类:
临时会话级别的cookie
服务器给客户端发送的cookie,如果没有指定cookie在客户端的保存时间,此cookie只会在浏览器的运行期间存在,当浏览器关闭后,客户端中的cookie会消失。
持久化的cookie
在服务器给客户端发送cookie的时候,可以指定cookie在客户端存活的时间。可以通过setMaxAge(int)方法来实现。
该方法的单位是秒
如果为负数表示不存储该cookie
如果是0表示删除该cookie
在设置cookie的时候,每一个cookie对象都需要和当面的访问路径一致,如果设置的cookie和路径不一致,在服务器端是无法获取到cookie信息的,设置路径可以使用cookie对象中的setPath(String)方法来完成,路径一般会设置项目根目录。这样设置只要访问当前项目中的内容,请求头就会携带对应的信息,如欧冠在设置cookie的时候,没有设置响应的path,此时会使用默认的路径。
设置每一个cookie自己的访问路径的作用是在访问每一个网站时,来判断是否需要携带当前的cookie数据,因为一个网站的后台可能会有多个不同功能的cookie对象存在,但是这些对象不是每一次请求都需要带给服务器,所以也就可以给不同的cookie对象在生成的时候设置不同的路径,这样当客户端访问服务器的时候就可以根据不同的访问路径来携带不同的cookie。
“jsp中嵌入java代码的方法”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。