jsp听课笔记

it2022-05-09  23

JSP页面元素<% %><%=%>输出<%!%>定义一个方法;或设置一个全局变量

web中文解决方法的问题1,把表单提交方式改为“post”,在接收请求是将

2,如果表单提交请求方法是get时,在请求参数时需要手工转码 。

3,把服务器的默认编码改了,《不建议用》改为默认编码后其他的程序有可能全是乱码。

 

手工加 ,class.forName("com.mysql")jsp有5个隐藏对象是可以掉用的; request请求的封装点提交后; out页面; session会话; application最大的; response;对象

out.porint();输出 ln();输出并换行

request.getParameter("UName");为取表单中NAME为UName的值

request.setCharacterEncoding(Stringcharset)//在表单的请求方法为post的时候才有用能有效的解决编码问题 requsest.getParameter之前用;<%@ page language="java" import="java.util.*,hnkjxy.bbs.dao.*,hnkjxy.bbs.entity.*" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <% request.setCharacterEncoding("utf-8"); String name = request.getParameter("UName"); String pwd = request.getParameter("uPass"); String msg=""; if(!msg.equals("")){ //获取用户信息访问接口对象 UserDao udao = DaoFactory.getUserDao(); //根据用户名查询用户信息 User user = udao.findUser(name); }else{ } %>

SESSION会话 可以用于传值 ,默认保存30分钟,若30分钟过后SESSION就没有值来,中途 你也可以修改 setAttribute("key","valuse") getAttribute("key") removeAttribute("key") 移除 invalidate(); 结束会话配置会话时间 在XML文件中 <!-- 设置会话的时间 --> <session-config> <session-timeout> 30</session-timeout> </session-config>

response 对象用来响应客户端

application 对象可以实现网页操作application 对象的基础类是 javax.servlet.ServletContext类来声明对象, 再掉用getServletContext();获取application对象如 application = ServletContext.getServletContext统计页面 Interger counter =(Interger)session.getAttribute("conter"); if(counter==null){ Integer.valueof(1); session.setAttribute("counter",counter); }else{

counter++;session.setAttribute("counter",counter);}z指令元素 在翻译的时候执行include指令实现重复代码的掉用 ;相当于复制;<%@ include file="header.jsp" %>

taglib 可以自己创建标签<%@ taglib uil ="" prefix=""%>能增加代码的重用度,使页面维护方便

动作元素 在访问的时候执行动作元素都是JSP开头的<jsp : forward >

<jsp:useBean id="123" scope="session" class="包名加类名"></jsp:java:useBean>在session中添加一个方法为123并实例化对象“类名” ,123就是这个类实例化的名称

<jsp:setProperty property="userName" value='<% request.getParameter("userName")%>' name="123"/>123这个类里面的属性赋值 ,这个类必须有set方法, 不然setProperty会找不到

<jsp:getProperty property="userName" name="123"/>取值方法 property 和name 是必要属性

value 可以改成 param当属性名和表单中的name属性相同是可以不写 prarm 类里面的属性请不要在第一第二个字母大写 ,大写的话容器的反射机制会找不到该属性的GET和SET方法

 

EL的使用 ;不能写在<% %>代码里面${user["name"]} 相当于 ${user.name}但不用在意属性第一二个字母大小${user.name}相当于掉用 user类里面的getName的方法,属性一二个字母必须小写使用的前提是需要写<jsp:useBean id="user" scope="session" class="包名"/>若是JAVA代码中的变量 已经实例化了的 你可以把改对象加到reques.setAttribute("top",top)

el表达式可以进行运算 ${13+5} ; 若${user.number*100}那么这个number属性必须为int

${empty user} 判断user类是否为空 为空返回true 不为空返回false

${A?B:C}当表达式A为true时运行 B表达式 当A表达式为FALSE时运行C表达式

自定义标签

自定义标签的类型有3种空标签 <name/> 或<name> </name>带属性标签<name value="" ></name>带标签的标签 <name> <name1></name1></name>自定义标签的代码必须写在Web-inf 下的 .mxl文件中

<?xml version="1.0" encoding="UTF-8"?> //encoding用来声明编码 version 用来声明版本<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> </web-app> //该xml文档所使用XSD,XSD用于定义一个XML文档可用的合法元素,这里XSD是2.5版本

<tag> <name>tag自定义名称</name> <tag-class>标签方法所在的类</tag-class> <body-content>empty</body-content> //可以填JSP 可家JAVA代码 <descriptiom>注释是这个标签是干嘛用的</description> <attribute> <name>count</name> <required>次属性是用必要的还是不必要的 用false 或true</required> <RTEXPRVALUE>TRUE 或者fales</rtexprvalue>//属性是否可以添加表达式 <type>java.util.list</type>//申明属性类型的 若没有这个标签那么默认为String类型 </attribute> <variable>申明变量 name变量名 scope变量的有效范围 varible-class 申明变量的类型 </variable></tag>

xml文件中的属性名要与CLASS中的属性名一样

标签中需要 class类 文件 此类需要继承类 或实现接口 如:javax.servlet.jsp.tagext.SimpleTagSupport 也就是 extends SimpleTagSupport以Suppert结尾的都是半成品类 当然你也可以实现接口 实现接口中的方法

<%@ taglib uri="Web-INF/caiwei.tld" prefix="demo自定义名称" %>在JSP中创建标签<demo自定义名称:tag自定义名称 count="给参数赋的值">

转载于:https://www.cnblogs.com/BestZsaiwei/p/7802265.html

相关资源:Javaweb最新全套项目实战视频教程-JSP课堂笔记

最新回复(0)