学习jsp的宝贵经验总结

本文分享了在使用JSP和Servlet技术时遇到的问题及解决经验,包括因未正确指定文件扩展名导致的异常,如何合理命名JSP页面与Servlet以简化开发流程,以及在JSP中使用JSTL等库的配置方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

大坑!转发时,忘记加.jsp

导致的后果是,控制台不停地打印异常错误。到最后还报了数据库连接过多的提示。写好了关闭数据库的代码,还有重启电脑都还是一样。到最后才发现!原来没加.jsp
1175089-20180407201616041-1808213791.png

遇到的问题2

1175089-20180407203241693-342416087.png

总结JSP的命名经验

servlet----- 假如是全部显示列表 ---StudentListServlet
web.xml---访问URL设为listStudent

<servlet-mapping>
    <servlet-name>StudentListServlt</servlet-name>
    <url-pattern>/listStudent</url-pattern>
</servlet-mapping>

jsp----命名为listStudent.jsp

经验总结:访问servlet的URL 的名字 设置尽量和jsp的名字一样 ,但事实上,还是通过了servlet才转发到jsp

JSP里的模板

假如想用JSTL和超级好用的ejs语法
1175089-20180407214602652-1773823437.png
这2个jar包 缺一不可。

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

charset=UTF-8: 告诉浏览器以 utf-8去解码
pageEncoding="UTF-8" --表示当前jsp里的代码用utf-8 编码

假如想在JSP引用bootstrap的东西,懒得以后再去找优快云了和下载文件了

<script src="http://apps.bdimg.com/libs/jquery/2.1.1/jquery.min.js"></script>
<link rel="stylesheet"
    href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css"
    rel="stylesheet">
<script
    src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js">
    
</script>

里面的servlet和jsp的绝对路径和相对路径的总结

正常来说, esclise都是有一个项目工程名字的,假如你的j2ee工程是SMS,那么你以后访问就得是http://localhost:8080/SMS/index.html
http://localhost:8080/SMS/login 这些。
而假如你在
action="/ABC/login" -->那么它就是相当于地址栏写死,http://localhost:8080/ABC/login
假如action="listServlet" --> 假如你现在当前访问的网页是http://localhost:8080/ABC/login, 那么你一点,它就会跳到http://localhost:8080/ABC/listServlet
这些无论是
href=" ";
request.getRequestDispatcher("listStudent.jsp").forward(request,
response);
response.sendRedirect("listStudent");
都是一样的原理的:
只要是/XXX 还是直接XXX
以/开头代表 绝对路径
以直接文件名开始,就是相对路径
或者以 ./文件名 开始,也是属于相对路径

小细节

比较的时候把常量字符串"admin" "123"放前面,因为用户可能没有输入账号密码就提交,servlet会获取到null。 这样就规避了空指针异常的问题。

1175089-20180407233530630-170437167.png
1175089-20180407234407145-1793081820.png

Session

这个jsessionid是应该是全球唯一的!
1175089-20180407234153497-1053869047.png
既无论你有没有session,只要你第一次访问一个网站时,服务器发现你是没有jsessionid的,它就会给你创建一个新的session。
所以你才能够用下面的这句话。
<%
session.setAttribute("name", "teemo");
%>

小经验

SP的隐式对象指的是不需要显示定义,直接就可以使用的对象,比如request,response

JSP一共有9个隐式对象,分别是
request,response,out

pageContext, session,application

page,config,exception

1:request,response,out 2:pageContext, session,application

1175089-20180408000903371-116509945.png

3.page

1175089-20180408000937923-406075920.png

4.config

1175089-20180408001055581-398867113.png
1175089-20180408001138169-429699950.png
1175089-20180408001158410-511094310.png

6:exeption

1175089-20180408001243460-1555901920.png
1175089-20180408001303842-258020145.png
1175089-20180408001327925-592210926.png

转载于:https://www.cnblogs.com/czy16/p/8735666.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值