java include 传递对象_java34

一、注解

1. @WebServlet

开发 servlet 项目,使用@WebServlet 将一个继承于javax.servlet.http.HttpServlet 的类定义为 Servlet 组件。在

Servlet3.0 中, 可以使用@WebServlet 注解将一个继承于 javax.servlet.http.HttpServlet 的类标注为可以处理用户请求的 Servlet。

用注解配置 Servlet也可以配置多个 urlPatterns 来指定多个访问路径

//@WebServlet("/Servlet02")

//@WebServlet(name="Servlet01",value="/Servlet001")

//@WebServlet(name="Servlet01",value={"/Servlet001","/Servlet0001"})

//@WebServlet(urlPatterns="/S01")

2. @WebFilter

@WebFilter 用来配置过滤器

@WebFilter("/*"),可以过滤乱码问题.

使用注解时:过滤器链按照类名的字母排序(大部分情况)

3. @WebListener

Servlet3.0 提供@WebListener 注解将一个实现了特定监听器接口的类定义

为监听器。将 实现了 ServletContextListener 接口的 MyServletContextListener

标注为监听器。

4. @MultipartConfig

使用注解@MultipartConfig 将一个 Servlet 标识为支持文件上传。

Servlet3.0 将 multipart/form-data 的 POST 请求封装成 Part,通过 Part 对上传的文件进行操作。

// 得到Part对象

request.getPart(name):name代表的是前台文件域的name属性值

Part part = request.getPart("myfile");

// 得到上的文件名

String fileName = part.getSubmittedFileName();

// 通过上传的文件名是否为空可以判断是否上传了文件

if (fileName == null || "".equals(fileName)) {

// 未上传文件

return;

}

// 得到文件存放路径

String realPath = request.getServletContext().getRealPath("/");

// 上传文件到指定路径

part.write(realPath + fileName);

二、jsp

1. 注释

1)、显式注释

客户端可以看到的注释

1、继承HTML风格的注释 <!-- html注释 -->

2)、隐式注释

客户端无法看到的注释

1、JSP自己的注释 <%-- jsp注释 --%>

2、继承Java风格注释 // 单行注释 /*多行注释*/

2.Scriptlet(脚本小程序)

所有嵌入在 HTML 代码中的 Java 程序都必须使用 Scriptlet 标记出来.

三种Scriptlet代码:

--%>

1)、<% %>

java脚本段,生成的代码在servlet的service方法体中,变量是局部变量

--%>

2)、<%! %>>

声明全局变量、方法、类等,生成的代码在servlet类体中

--%>

3)、<%= %>

表达式,输出表达式,可以输出变量名、字面量,生成的代码在servlet的service方法体中

int num = 1;

System.out.println(num);

out.print(num);

out.print(str);

request.setAttribute("abc", "ABC");

%>

int a = 10;

String str = "Hello";

%>

4.jsp指令标签

page指令

language:支持的语言,目前只有java

contentType:响应类型及编码格式

pageEncoding:字符编码

import:导包,只有该属性可以同时设置多次

errorPage:当页面报错时要跳转的页面,一般与isErrorPage属性一起使用,且跳转的页面的isErrorPage属性设置为true

isErrorPage:是否是处理错误的页面,默认是false。一般与errorPage属性一起使用

注:页面的编码以charset的值为准;若charset未设置,则以pageEncoding为准;若两者都未设置,则使用默认编码ISO-8859-1

5.include

1). include静态包含

格式: 相对路径

file属性支持表达式去取值

特点:

只会生成一个源码文件,相当于直接将内容拷贝进来,所以不能有同名变量。

运行效率高一点点。耦合性较高,不够灵活。

2). include动态包含

语法:

page属性支持表达式去取值

特点:

生成多个源码文件,相当于方法的调用,可以有同名变量。

耦合度低,比较灵活,效率高。

注:

1、双标签之间不能有任何内容(除非有参数)

Expecting "jsp:param" standard action with "name" and "value" attributes

2、动态包含可以传递参数

获取参数使用:request.getParameter(name)

value属性支持表达式,name属性不支持

The name attribute of the jsp:param standard action does not accept any expressions

5.九大内置对象

// 四大域对象

pageContext.setAttribute("uname1", "zhanggsan");

//request

// session

// application

// 两个输出对象

// out

// response

// 配置对象

// config

// 当前页面对象

//page

// 异常对象 主要当前页面设置了isErrorPage="true"时才能使用

// exception

三.EL表达式

1.注意点

语法:${key } key代表的是存在域对象中的键

注意:el表达式一般操作的是域对象,无法操作变量

取值范围:

从小范围到大范围取,取到为止,若未取到,则一直向大返回查找;若四个范围都未获取到,返回空字符串。

获取指定范围的值:

pageScope、requestScope、sessionScope、applicationScope

pageContext, request, session, application;范围依次是,本页面,一次请求, 一次会话,整个应用程序。

而 EL 默认的查找方式为 从小到大查找,找到即可。当域对象全 找完了还未找到则返回空字符串””。

EL操作对象

获取对象中的属性:${对象.属性名}

注:属性必须提供get和set方法

2. 参考代码

uname:${uname }

requestScope:${requestScope.uname }

str:${str }

EL 对象取值

user对象:${user }

获取user对象中的属性:${user.userName }

EL 集合取值

获取集合:${mylist } ---- ${userList }

获取指定下标的值: ${mylist[0] } ---- ${userList[0].userPwd }

获取集合的长度:${userList.size() }

判断为空empty

判断字符串是否为空:${empty uname } --- ${empty uname1 } --- ${!empty uname }

判断对象是否为空:${empty user }

判断集合是否为空:${empty userList } --- ${empty list2 } --- ${empty list3 }

EL Map取值

获取Map的值:${map }

获取指定key的value:${map.aaa } --- ${map["aaa"] }

EL 运算

${1+1 } -- ${num+1 } -- ${num + num2 }

${num / num2 } ---

EL 比较

${num == 1 } -- ${num >= 10 }

${str1 == str2 } -- ${str1 eq str2 }

${num + 10 > 10 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值