jsp内容大集合

Java开发交流群 677807540   大家可以一起

讨论技术欢迎加入

1.在web.xml设置异常出现的跳转信息
<error-page>
    //出现空指针异常
    <exception-type>java.lang.NullPointerException</exception-type>
    //跳转到那个页面
    <location>/error.jsp</locatiion>
</error-page>

2.jsp 注释的方式<%-- --%> java脚本
带有!的声明是全局变量,在service方法外面
不带有!的声明是局部变量,在service方法里面
带有=号表示输出方式,直接输出值生成的源码也在service里面
<%! %> <% %> <%= %>

3 使用include指定元素 file带便引入本页面的辅页
<%@ include file="data2.jsp"%>

4.jsp内建对象 这些对象我们可以直接使用,不需要通过类来拿取
在源码中这些对象已经准备好了,我们使用时唯一注意的就是对象名是固定得
不能够随便更改
对象名 
pageContext request session application 
config out page  response exception(这个需要page 指令设置是否开启)

5.page指令元素
import:页面脚本导包,多个包用逗号隔开
pageEncoding:jsp转换为servicr的编码 默认是iso-8859*1不支持中文
contentType:软编码的一部分,一般在指令元素外再添加request.setCharacterEncoding("编码")
这俩句就是Servlet中的软编码,在jsp中不管是get和post都支持中文
session:默认是true,表示支持session会话跟踪机制,如果设置为false则打开jsp页面时不能自动创建当前的session
buffer:页面的缓存,默认8kb这些内容会保存在用户本地,提高浏览器速度
info:嵌套在jsp中的一段信息,一般保持用户的签名等,通过getServletInfo()取出
isELIgnored:是否忽略EL表达式,默认不忽略
isThreadSafe:当前线程是否是安全,默认true 单实例多线程,不安全! 
更改为false,单线程模式,线程安全,底层实现了SingleThreadModel接口效率低下
errorPage:当前页面出现异常时自动跳转到哪个页面(错误友好化)
isErrorPage:当前页面是否可以使用exception内置对象来显示异常,true可以使用false无法使用
autoFlush:当前页面是否自动实时刷新,不读取缓存,设置刷新时间还可以自动根据时间刷新

6.所谓表达式,表示此技术偏重于数据的显示,一般是往外取值不会涉及到赋值,业务逻辑等操作

7.EL表达式拿取范围属性 ${范围.key},范围可以省略,省略后会自定从范围小的开始拿取, .后面肯定是key 不需要引号
四个范围 pageScope requestScope sessionScope applicationScope 

8.接受客户端传来的值 <%=request.getParameter()%> 
表单提交的或者是链接传来的值都是String类型的字符串 
EL表达式 ${param.key} 这里的param不可以省略

9${empty sessionScope.key} 拿不到值返回true 拿到返回false

10.EL表达式并不是任何值都能直接显示,必须根据提供的范围从范围中拿取,如果无法拿取,则什么都不输出,也不会报错.

11.拿取web.xml中配置的全局参数
<%=application.getInitParameter()%> 这是java代拿取
EL表达式 ${initParam.key} 

12.JSTL 变迁 jsp standard tag lib
范围赋值
<c: set var= "key" value="值" scope="范围" page request session application></c:set>
取值
<c:out value="直接输出/<%=str%>/${pageScope.key}  default="如果取不到值者输出这里的内容"></c:out>

13.删除值
<c: remove var="要删除的key" scope="要删除的范围" 如果不给出范围则会根据key全部删除 />

14.重定向
<c: redirect url="目标地址的绝对路径"></c:redirect>

15.遍历
<c:forEach items(循环体)="${sessionScope.key}/<%=session.getAttribute("key")%"  
var="每次遍历出来对象的key" step="每int个遍历出来一次/步长" begin="开始的索引值" 
end="结束的索引值">
        这里的范围一定是page 可以省略不写
    <c:out value="${pageScope.对象的key.属性的key}"></c:out>
</c:forEach> 

16.流程控制
<c:if test="条件">
    <c:out value="输出"></c:out>
</c:if>

<c:choose>
    <c:when test="条件">
        <c:out value="z输出"></c:out>
    </c:when>
    <c:otherwise>
        <c:out value="输出"></c:out>
    </c:otherwise>
</c:choose>

17.引入外部页面 如果没有网这里会报错
<c:import url="网站地址"></c:import>

18.jsp内建动作 每个jsp页面一定都要写contentType 和<%=request.setCharacterEncoding("编码")%>

19.useBean 变迁不一定是新建一个新的对象,而式根据id提供的key和scope提供的范围从内存中拿取,如果可以拿取直接拿取已经存在的对象,如果无法拿取,则穿件一个新的对象.
受四个范围影响.超果范围则会创建一个新的对象
<jsp:useBean id="stu" class="com.etoak.po.Student" scope="request"></jsp:useBean>
page request session application
以下有三种拿取属性的方式
<%=stu.getName() 这里的stu是对象的值%>
<c:out value="${requestScope.stu.name}"></c:out> 范围也可以省略
<jsp:getProperty property="name" name="stu"/>
除了java脚本里面的stu其他的都是key
而且 id name 是同一个key key肯定和对象名字一样 对象的名字也叫key
useBean 创建一个stu的想key是stu getProperty得到name属性的key是name

20.
接受提交过来的值并赋值 name对应useBean的id的key property给哪个属性的key赋值
如果页面提交过来的key和实体类的对象完全一样可以用*表示
value="表示这个属性的值就是这个用户提交的无效" 
当页面提交过来的key和实体类的属性不对应要设置param属性来对应页面提交过来的key
<jsp:setProperty property="name" name="stu" param="提交过来表单的key" value="固定得值" /> property拿取属性的key名 name里面的和id也要对应
<jsp:getProperty property="name" name="stu"/>

21请求转发
<jsp:forward page="suc.jsp">
    <jsp:param value="thisisvalue"  name="thisiskey" />
</jsp:forward>
重定向
            
<c:redirect url="err.jsp">
 通过连接传值只能传字符串:相当于response.sendRedirect("err.jsp?thisiskey=thisisvalue")
    <c:param name="thisiskey" value="thisisvalue"></c:param>
</c:redirect>

22.分页的种类 1.假分页 拿出所有 用户需要那几条显示那几条 
              2.真分页 用户需要几条数据,就从数据库中拿取几条数据

23.分页公式
select 字段 from 表 limit ?,?;

24.分页四要素
A:总记录数    dao层里面可以拿取
B:每页记录数     自己定义每页显示的数据
c:总页数    (总记录数+每页记录数-1)/每页记录数
D:当前页     会随着用户动作发生改变,默认值1,在求当前页面时必须随着用户的动作立即拿取当前页面

25 分页公式pro
select 字段 from 表 limit(当前页-1)*每页记录数,每页记录数;

26.利用隐藏域 将每个button按钮激发时候的值赋给 隐藏域
    function chang(cr){
        cup 是隐藏域的name  将button按钮的值赋给 隐藏域的name
        document.form[0].cup.value =cr;
        文本对象拿取第一个form[0]的cup的key和value的key 并cr 赋给他
        dacument.form[0].submit();
    }
                
27.上传操作 必须使用post enctype:设置传输为字节流 multipart/form-data
                                 设置字符流application/x-www-form-urlencoded

28.上传文件流程
    全称都要try 使用SmartUpload 插件五步上传文件
    1:引入SmartUpload SmartUpload su = new SmartUpload();
    2:设置允许上传文件后缀名 多个用逗号分开
    su.serAllowedFilesList("jap,pen,gif");
    3:设置允许上传文件的大小
    su.setTotalMaxFileSize(5<<20);
    4.初始化 使SmartUpload插件取代Servlet的request
    su.initialize(getServletConfig(),request,response);
    5上传文件
    su.upload();

    //拿取所有上传文件
    Files files = su.getFiles();
    //拿取唯一的一个上传文件
    File file = files.getFile(0);
    //拿取上传文件的全名
    String fileName = file.getFileName();
    //拿取上传文件的后缀名
    String fileExt = file.getFileExt();
    //设置一个路径,将文件按照原名保存在此路径下
    String path = "/image/"+ new UUIDFenerator().generate()+"."+fileExt;
    //将文件保存在此路径下
    file.saveAs(path);

    //接收提交过来的用户名 
    //拿取SmartUpload提供的request;
    从SmartUpload中得到request对象
    Request req = su.getRequest();
    String name = req.getParameter("name");

    Uploader up = new Uploader(name,path);
    request,setAttribute("up",up);
    通过请求转发发送到指定页面


    src="/工程名/image/4839483943849.jpg"
        
        拿取/工程名
        request.getContextPath()
        拿取/image/483948394349.jpg
        up.getPicpath()
        ${requestScope.up.picpath}
        
        使用EL表达式来拿取九个内置对象
        Java:
            pageContext
            request
            session
            application
            response
            page
            out 
            config
            exception
        El:
            ${pageContext}
            ${pageContext.request}
            ${pageContext.session}
            ${pageContext.servletContext}
            ${pageContext.servletConfig}
            ${pageContext.out}
            ${pageContext.exception}
            ${pageContext.response}
            ${pageContext.page}
    <jsp:useBean id="up" class="com.etoak.po.Uploader" scope="request"></jsp:useBean>
    <img alt="些什么都行,浏览器差异很大" src="${pageContext.request.contextPath}${requestScope.up.picpath}"/>
    <a href="/JspDay4_upload/servlet/Download?path=${up.picpath}">下载文件</a>
        try{
            //引入SmartUpload
            SmartUpload su = new SmartUpload();
            //设置保存的目的地,如果填写null则由浏览器提示用户下载到哪里
            su.setContentDisposition(null);
            //初始化
            su.initialize(getServletConfig(),
                    request, response);
            //根据提供的地址进行下载
            su.downloadFile(request.getParameter("path"));

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值