【jsp总结】jsp成servlet、错误页面、pageContext九大隐式、静态包含、jsp标签、EL表达式、JSTL、CSS中的路径写法

1、jsp翻译成servlet

jsp翻译保存在apache-tomcat-7.0.37.2\work\Catalina\localhost\HelloJavaWeb\org\apache\jsp
jsp乱码解决pagEncoding="UTF-8"
JSP脚本表达式:用于将程序数据输出到客户端  <%= 变量或表达式 %>
<%@ page sessio="false"%>考虑到服务器压力,要是不用可以关了。


2、错误页面

jsp里面可以配置错误页面<%@ page error-page="/errors/error.jsp"%>,也可以在xml中配置error-page,
jsp里面配置<%@ page isErrorPage="true"%>可以将Exception对象传递进jsp

<error-page>
		<exception-type>java.lang.ArithmetException</exception-type>
		<location>/errors/error.jsp</location>
	</error-page>

	<error-page>
		<error-code>404</error-code>
		<location>/errors/404.jsp</location>
	</error-page>


3、pageContext以及九大隐式

九大隐式
Request request;
Response response;
HttpSession session = null;
ServletContext application;
ServletConfig config;
JspWriter out = null;
Object page = this;
Exception exception;
PageContext pageContext;
pageContext:封装了其他8大隐式,相当于提供了一个访问其他隐式对象的入口,可以用于自定义标签开发当做参数传入


4、JspWriter out;//是一个缓冲流,可以设置缓冲的大小


5、页面包含

静态包含(编译时包含,翻译成一个servlet)<@include  file="">//建议使用静态包含
动态包含(运行时包含,翻译成多个servlet)request.getDispatcher.include()//pageContext.include()//<jsp:include page=""></jsp:include>


6、forward标签
<jsp:forward page=""></jsp:foward>
可以带参数过去,param


7、jsp的useBean标签:body部分只在创建javabean的实例对象的时候创建

<jsp:useBean id="person" class="com.xiaozhi.domain.Person"/>

可以看成person=new Person();


8、setProperties标签、getProperties标签

    <!-- 手工为bean属性赋值 -->
    <jsp:setProperty name="person" property="name" value="xiaozhi"/>
    
    <!-- 请求参数为bean属性赋值 :支持八种数据类型的自动转化-->
    <jsp:setProperty name="person" property="name" param="name"/>
可以看成,内部使用beanUtils.setProperties(person,"name",name);来处理的。

    <!-- 用所有请求参数为bean属性赋值 -->
    <jsp:setProperty name="person" property="*" />
可以看成内部使用内省,获取关于name字段的Description对象,通过这个对象得到写方法,执行写方法。

    <jsp:getProperty name="person" property="name" />
可以看成person.getName();


9、EL表达式

${data}//实际上就是pageContext.findAttribute()//pageContext request response application

取出web路径:

${pageContext.request.CotextPath}

El表达式通常用.号,.号取不出来了,再用[]

<%
Person p=new Person();
p.setName("namenamename");
request.setAttribute("p",p);
%>
${p.name }

<%
Person p1=new Person();
Address a=new Address();
a.setCity("huang gang");
p1.setAddress(a);
request.setAttribute("p1",p1);
%>
${p1.address.city }

<%
List list=new ArrayList();
list.add(new Address("上海"));
list.add(new Address("北京2"));
list.add(new Address("武汉"));
request.setAttribute("list",list);
%>
${list[1].city } <%--北京2 --%>

<%
Map map=new HashMap();
map.put("aa",new Address("上海"));
map.put("bb",new Address("北京2"));
map.put("cc",new Address("武汉"));
map.put("111",new Address("南京"));
request.setAttribute("map",map);
%>

${map.aa.city } <%--上海 --%>
${map["111"].city } <%--南京 ,通常用点号,点号取不出来用[]--%>


10、JSTL的使用

导入两个包jstl、standar.jar

导入标签库<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

<%
		List list = new ArrayList();
		list.add(new Address("上海"));
		list.add(new Address("北京2"));
		list.add(new Address("武汉"));
		request.setAttribute("list", list);
	%>
	<c:forEach var="a" items="${list}">
		${a.city}
	</c:forEach>


	<%
		Map map = new HashMap();
		map.put("aa", new Address("上海"));
		map.put("bb", new Address("北京2"));
		map.put("cc", new Address("武汉"));
		map.put("111", new Address("南京"));
		request.setAttribute("map", map);
	%>
	<c:forEach var="entry" items="${map }">
 		${entry.key } : ${entry.value.city } <br />
	</c:forEach>


	<c:if test="${user!=null }">
		欢迎
	</c:if>
	<c:if test="${user==null }">
		请登录
	</c:if>

11、css中的路径写法servlet转发到jsp,jsp加载css,css加载图片,是相对于当前的浏览器的地址(先写全局,全局不行再写相对于浏览器地址)


12、将jsp改坏,访问出错,快速点刷新,服务器刚让我翻译完又让我翻译我不翻译了,拿着翻译好的servlet返回给用户。造成一会好一会坏的现象。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值