可以去work→ Catalina查看JSP引擎生成的.java代码,更加深入理解jsp
1、 如果 html文件和 class 文件不在一起 action =”../” 表示上级目录
2、http://localhost:8080/为一片空白
<servlet>
<servlet-name>HelloForm</servlet-name>(一个名字标签)
<servlet-class>HelloForm(字节码文件名称)</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloForm</servlet-name>
<url-pattern>/HelloForm(外部访问路径)</url-pattern>
</servlet-mapping>
<!--一个class文件结束-->
把这一部分代码删去就好了, but wh y?是
有父子关系的都叫做一个sessio n
Seesion 服务器端的一小块内存,存储客户端的信息!相当于客户端的cookie
客户端和服务器端的session 是靠一个ID 绑定的,ID在客户端存在于cookie,如果cookie被禁用了,可以通过URL重写
Cookie 父路径不能访问子路径
同一个session窗口共享一个session
但是有一个更大的篮子, application
不要在servlet中添加成员变量!
Class.forName("com.mysql.jdbc.Driver");仅仅这个语句用到了mysql-connector-java-5.1.7-bin.jar这个jar 其他的 三大成员
Connection conn = null;
Statement stmt = null;
ResultSet rs =null;
都是java.sql 里的
写在<%! %> 里的是成员变量
写在<% %> 里的是局部变量
JSP 语言 是先执行服务器端的代码 然后再传回客户端,客户端从服务器端接收到的代码可以用client的浏览器加以解释! 容易谜,但很巧妙!
JSP 静态包含 include <%@include
<%@ includefile="date.jsp" %>
1、编译之前已经包含
2、不能传参数
3、是同一个servlet
4、是同一个request对象
JSP 动态包含 jsp:include
<jsp:includepage="date.jsp" flush="true"/>
1、 不是同一个 request对象,但时被包含的jsp可以取出包含他的jsp的Request
2、 可以传参数!
3、产生两个class文件
4、程序运行过程中才执行
Bean get 和 set 要小写 其后第一个字母大写
l <jsp : forward page=””/>
1、 虽然不是同一个Request 但时可以取到上一个Request
2、forward后的语句不会继续发送给客户端
速度快 |
服务器内部转换, |
地址栏没有变化 |
可以传参数 |
/代表的是http://127.0.0.1/test this.getServletContext().getRequestDispatcher ("/servlet_jsp/ServletUseJsp.jsp") 并且只能以/开头 |
l <% response.sendReadirect(“”)%>
是不同的request |
send后的语句会继续执行,除非return |
速度慢 |
需要到客户端的往返,可以转到任何页面, |
地址栏有变化 |
可以传参数,直接写在url后面 |
/代表的是http://127.0.0.1/ <%response.sendRedirect("/test/ServletToJSP");%> <form action="/test/ServletToJSP"> <a href="/test/ServletToJSP">test</a> |
常用 |
关于导包不导包使用类的问题
1、Tomcat 不允许使用裸替类
2、 使用java 语法
如果导包了 例如%@pageimport="bean.CounterBean"% ,此时使用 CounterBean类就不用加上类名
直接CounterBean counterBean =(CounterBean) application.getAttribute("counterBean");
但如果没导包
需要加上类名
bean.CounterBean counterBean = (bean.CounterBean)application.getAttribute("counterBean");
3、使用JSP语法
1、 如果导包
<jsp:useBean id="counterBean" scope="application" class="CounterBean(这不加bean.)" />
也会报错,没找到类
2、但如果不导入包当然是必须加 bean.
<jsp:useBean id="counterBean"scope="application"class="CounterBean(这不加bean.)" />
3、总结来说 导入包不导入包 都必须加 包名
本身文档的编码格式也可以不一样,必须调成一个编码格式,编码格式可以用Dreamweaver查看、
对于表单提交的路径, 可以用相对路径