JSP遇到的问题及知识点

来源:互联网 发布:奇异淘宝小店书包网 编辑:程序博客网 时间:2024/06/03 13:05

 可以去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")
.forward(req, resp);

并且只能以/开头

 

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查看、

  对于表单提交的路径, 可以用相对路径

0 0
原创粉丝点击