中山精品网站建设机构,海外留学网站建设方案,快照不更新,wordpress 4.4.3 漏洞JSP动作标签 用户可以使用JSP动作标签向当前输出流输出数据#xff0c;进行页面定向#xff0c;也可以通过动作标签使用、修改和创建对象。
jsp:include标签 jsp:include标签将同一个Web应用中静态或动态资源包含到当前页面中。资源可以是HTML、JSP页面和文…JSP动作标签 用户可以使用JSP动作标签向当前输出流输出数据进行页面定向也可以通过动作标签使用、修改和创建对象。
jsp:include标签 jsp:include标签将同一个Web应用中静态或动态资源包含到当前页面中。资源可以是HTML、JSP页面和文本文件等。通过include动作可以多次使用同一个页面增加了代码的可重用性。例如可以在页面中使用include动作引入头部和底部页面。
jsp:include的语法如下 jsp:include pagerelativeURL | %expression% flushtrue / page指定引入页面的路径flush表示在引入文件前是否刷洗缓冲区默认为false。
下面以在JSP页面中引入头部页面来说明include的用法。 首先创建一个head.jsp页面head页面的代码如下 % page contentTypetext/html;charsetUTF-8 languagejava %
html
head titlehead页面/title
/head
body
pheader页面内容/p
/body
/html 接着编写index.jsp页面页面内容如下
% page contentTypetext/html; charsetUTF-8 pageEncodingUTF-8 %
!DOCTYPE html
html
head
title主界面/title
/head
body
jsp:include pagehead.jsp/jsp:include
p主界面内容/p
/body
/html jsp:forward标签 jsp:forward标签能实时地从当前JSP页面跳转到同一个Web应用中静态资源JSP页面或者Servlet同时有效终止当前JSP页面的执行。其语法如下 jsp:forward pageurl/ page属性指定要跳转资源的相对URL且指定的文件只能十该Web应用中的文件。 下面用示例来说明jsp:forward标签的使用。首先我们准备一个login.jsp页面。 login.jsp页面的代码如下
% page contentTypetext/html;charsetUTF-8 languagejava %
html
head
title登录页面/title
/head
body
jsp:forward pageindex.jsp/jsp:forward
/body
/html index.jsp内容如下
% page contentTypetext/html; charsetUTF-8 pageEncodingUTF-8 %
!DOCTYPE html
html
head
title主界面/title
/head
body
p主界面内容/p
/body
/html 重新启动应用后打开浏览器在地址栏中输入http://localhost:8080/s001/login.jsp 界面展示如下图所示 可以看到浏览器中地址仍然是跳转前的地址。jsp:forward与Servlet中转发类似客户端不会显示转发后的地址有较好的隐蔽性。
jsp:param标签 jsp:param动作用来传递参数信息经常和其它动作一起使用例如和jsp:include 和 jsp:forward一起使用。其语法如下 jsp: param nameparam_name valueparam_value / 在jsp:forward标签中嵌套jsp:param可以将参数传递给要跳转的页面。语法如下 jsp:forward pageurl jsp: param nameparam_name valueparam_value / /jsp:forward
接下来我们修改以下login.jsp页面代码如下
% page contentTypetext/html; charsetUTF-8 pageEncodingUTF-8 %
!DOCTYPE html
html
head
titleWelcome/title
/head
body
%
String gender request.getParameter(gender);
if (gender.equals(male)) {
gender Mr.;
} else if (gender.equals(female)) {
gender Mrs.;
} else {
gender ;
}
%
Welcome!%gender%%request.getParameter(username)%
/body
/html 启动该应用后在浏览器地址栏中输入http://localhost:8080/s001/login.jsp 可以看到如下结果 JSP useBean动作 jsp:useBean的语法如下 jsp:useBean id name class package.class scope page | request | session | application / 属性id设定bean对象的变量名称。属性class设定bean对象对应的类使用此标签会调用JavaBean不带参数的构造方法。 属性scope设定bean的应用范围其值有四种page、request、session、application默认为page。 scope取值pageJSP引擎分配给每个客户的bean是互不相同的他们占有不同的内存空间该bean的有效范围是当前页面当客户离开这个页面时JSP取消分配给该客户的bean。 scope取值session:JSP引擎分配给每个客户的bean时互不相同的该bean的有效范围是客户的会话期间。如果客户在某个页面更改了这个bean的属性其他页面的这个bean的属性也将会发生同样的变化。 scope取值request:JSP引擎分配给每个客户的bean是互不相同的该bean的有效范围是request期间。JSP引擎对请求做出响应后取消分配给客户的这个bean。 scope取值application:所有客户共享这个bean如果一个客户更改了这个bean的属性所有客户的这个bean的属性也将发生同样的变化。这个bean直到服务器关闭才被取消。 下面以示例来说明jsp:useBean的用法首先创建一个简答的Test类Test类代码如下
package com.example.servlet001;
public class Test { public String concatStr(String str) { String str2 str.concat(Test java bean); return str2; }
} 然后创建一个index.jsp页面来使用这个类
% page contentTypetext/html; charsetUTF-8 pageEncodingUTF-8 %
!DOCTYPE html
html
head
titleJavaBean示例/title
/head
body
jsp:useBean idtest classcom.example.servlet001.Test /
%
String str 这是;
out.print(test.concatStr(str));
%
/body
/html 启动该应用后在浏览器中输入URL地址http://localhost:8080/s001/ jsp:getProperty标签与jsp:setProperty标签 jsp:getProperty name beanName property attributeName jsp:getProperty标签用来获取JavaBean的属性值属性name指定bean对象的变量名属性property为要获取的对象属性名。使用此标签会调用指定属性的get方法因此在JavaBean类定义中必须有此属性的get方法且此方法的访问修饰符为public否则执行此标签会抛出异常。 jsp:setProperty name beanName property attributeName value attributeValue/ jsp:setProperty标签用来设置JavaBean的属性值属性name指定bean对象的变量名属性property为要设置的对象属性名属性value为设定的属性值。使用此标签会调用指定属性的set方法因此在JavaBean类定义中必须有此属性的set方法且此方法的访问修饰符为public否则执行此标签时会抛出异常。 另外JavaBean在JSP中还有一个很重要的机制——自省机制即当服务器接收到请求时它能根据请求的参数名称自动设定与JavaBean相同属性名称的值。 首先创建一个Site类Site类的代码如下
package com.example.servlet001;
public class Site { private String name; private String url; public String getName() { return name; } public void setName(String name) { this.name name; } public String getUrl() { return url; } public void setUrl(String url) { this.url url; }
}
创建一个login.jsp
% page contentTypetext/html;charsetUTF-8 languagejava %
html
head
title登录页面/title
/head
body
form actionindex.jsp methodpost
网站名称: input typetext namename/ br br
网址: input typetext nameurl/ br br
input typesubmit value提交/
/form
/body
/html
创建一个index.jsp % page contentTypetext/html; charsetUTF-8 pageEncodingUTF-8 %
!DOCTYPE html
html
head
titleJavaBean示例/title
/head
body
%
request.setCharacterEncoding(UTF-8);
%
jsp:useBean idsite classcom.example.servlet001.Site/
jsp:setProperty property* namesite/
jsp:getProperty propertyname namesite/
jsp:getProperty propertyurl namesite/
/body
/html
启动该应用后在浏览器地址栏中输入http://localhost:8080/s001/login.jsp 点击提交按钮后的界面展示如下图所示 jsp:plugin标签 首先创建一个applet小程序applet小程序代码如下
package com.example.httpservletrequest01;
import java.applet.Applet;
import java.awt.*; public class MyApplet extends Applet { Override public void init() { setBackground(Color.gray); } Override public void paint(Graphics g) { g.setColor(Color.red); g.drawString(Hello Word, 25, 50); }
} 创建一个index.jsp页面页面代码如下
% page contentTypetext/html; charsetUTF-8 pageEncodingUTF-8 %
!DOCTYPE html
html
head titleJSP plugin/title
/head
body
jsp:plugin codebasehttp://localhost:8686/s01/ typeapplet codecom.example.httpservletrequest01.MyApplet.class width800 height800/jsp:plugin
/body
/html Chrome浏览器需要安装CheerpJ Applet Runner 10.6并启用