一、JSP中的两种include的区别
1、<%@include file="..."%>
2、<jsp:include page="..."/>
或者
<jsp:include page="...">
<jsp:param name="..." value="..."/>
</jsp:include>
其中方法1是先包含后处理,方法2是先处理再包含。
当用方法1时如果被包含的文件内有和主文件相同的变量定义,则会出错;方法2是将被包含文件中的代码处理后仅将结果包含进来。推荐使用方法2。
二、关于Tomcat服务器虚拟目录的配置打开Tomcat的安装目录,进入conf/server.xml,在</host>上方加入
<Context path="/虚拟目录名" docBase="虚拟目录路径"/>
三、equls和==在Java中区别equls是对内容的比较,==是对地址的比较。
技巧:在使用equls时应该使用 "字符串".equls(变量名)形式,可避免使用 变量名.equls("字符串") 在当变量名为null时会发生空指向异常。
四、JSP九种内置对象(内置对象 类型 作用域)·与Servlet有关的隐含对象
config javax.servlet.ServletConfig page
page java.lang.Object page
·与Input/Output有关的隐含对象
request javax.servlet.http.HttpServletRequest request
response javax.servlet.http.HttpServletResponse page
out javax.servlet.jsp.JspWtiter page
·JSP执行时,提供有关Context的隐含对象
pageContext javax.servlet.jsp.PageContext page
session javax.servlet.http.HttpSession session
application javax.servlet.ServletContext application
·与Error有关的隐含对象
exception java.lang.Throwable page
五、两种跳转的区别1、<jsp:forward page="..."/>
·地址栏不改变(服务器端跳转)
·执行到跳转语句后立刻五条件跳转,之后的代码不再执行
·如果使用forward跳转,一定要在跳转之前释放所有资源
·使用forward时,request设置的属性依然能保留在下一个页面(setAttribute)
·通过<jsp:param name="..." value="..."/>传递参数
2、response.sendRedirect(“...”);
·地址栏改变(客户端跳转)
·所有代码执行完毕之后再跳换
·不能保存request属性(地址改变了,客户端跳转)
·通过对URL地址重写传递参数
此外,在Servlet中使用这条语句实现jsp:forward跳转
Resquest.getRequestDispatcher("xxx.jsp").forwaor(req,resp);
六、web.xml的其他配置 <servlet>
<servlet-name>mldn</servlet-name>
<jsp-file>/WEB-INF/sdemo.jsp</jsp-file>
(文件的路径) <init-param>
<param-name>xxx</param-name>
<param-value>aaa</param-value>
</init-param>
<init-param>
<param-name>yyy</param-name>
<param-value>bbb</param-value>
</init-param> </servlet>
<servlet-mapping>
<servlet-name>mldn</servlet-name>
<url-pattern>/lxh</url-pattern>
(浏览器中对应的地址,映射到上面的文件路径) </servlet-mapping>
<welcome-file-list>
(默认首页的设置) <welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
init-param中的值通过config.getInitParameter("xxx")取得。
七、对数据库操作顺序<%@ page import="java.sql.*"%>
1、加载驱动程序
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver") ;
2、连接数据库
Connection conn = DriverManager.getConnection("jdbc:odbc:XXX") ;
3、操作数据库
Statement stmt = conn.createStatement() ;
stmt.executeUpdate("...") ;(插入、删除、更改)
ResultSet rs = stmt.executeQuery("...") ;(查询)
while(rs.next())
{
int id = rs.getInt("id");
Steing name = rs.getString("name");
...
int id = rs.getInt(1);
Steing name = rs.getString(2);
}
4、关闭数据库
rs.close()
stmt.close() ;
conn.close() ;
八、PreparedStatementsql = "Insert INTO person (name,password,age) VALUES (?,?,?)";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1,XXX);
pstmt.setString(2,YYY);
pstmt.setInt(3,ZZZ);
pstmt.executeUpdate();
九、光标和ResultSet参数(JDBC 2.0)只读光标
Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs.afterLast();
//光标移动到最后,等于rs.absolute(-1);rs.absolute(3);
//从第四条开始输出rs.previous();
//向前滚动可更新
Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
rs = stmt.executeQuery(sql) ;
rs.last() ;
rs.updateString("name","...") ;
rs.updateString("password","...") ;
rs.updateRow() ;
插入
Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
rs = stmt.executeQuery(sql) ;
rs.moveToInsertRow() ;
rs.updateString("name","...") ;
rs.updateString("password","...") ;
rs.insertRow() ;
删除
Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
rs = stmt.executeQuery(sql) ;
rs.absolute(4) ;
rs.deleteRow() ;
以上操作都是将全部数据取出来在内存中定位,性能较差,不推荐使用,了解即可
十、批处理try
{
stmt = conn.createStatement();
conn.setAutoCommit(false);
//取消自动提交 stmt.addBatch("Insert INTO person (name,password,age) VALUES ('LXH_A','zzzzzz',28)");
stmt.addBatch("Insert INTO person (name,password,age) VALUES ('LXH_B','zzzzzz',28)");
stmt.addBatch("Insert INTO person (name,password,age) VALUES ('LXH_C','zzzzzz',28)");
stmt.addBatch("Insert INTO person (name,password,age) VALUES ('LXH_D','zzzzzz',28)");
stmt.addBatch("Insert INTO person (name,password,age) VALUES ('LXH_E','zzzzzz',28)");
stmt.addBatch("Insert INTO person (name,password,age) VALUES ('LXH_F','zzzzzz',28)");
stmt.addBatch("Insert INTO person (name,password,age) VALUES ('LXH_G','zzzzzz',28)");
stmt.addBatch("Insert INTO person (name,password,age) VALUES ('LXH_H','zzzzzz',28)");
stmt.executeBatch();
//执行批处理语句 //如果没有异常,则执行此段代码 conn.commit();
//提交事务,真正向数据库中插入数据}
catch(Exception e)
{
try
{
conn.rollback();
//将数据库回滚 }
catch(Exception e1)
{}
out.println("操作数据库失 败!!!");
}
十一、如何应用修改后的JavaBean1、重启Tomcat服务器
2、修改Tomcat的conf\server.xml文件,在
<Context path="/虚拟目录名" docBase="虚拟目录路径"
reloadable="true"/>
中加入红色部分属性。但会降低服务器性能,一般只在开发中使用。
十二、使用JavaBean<jsp:useBean id="xxx" scope="yyy" class="zz.zz.zz.zz" />
<jsp:setProperty name="xxx" property="*" />
·name为已经声明过的JavaBean对象
·property为*表示自动匹配,也可指定单个变量
<jsp:setProperty name="xxx" property="a" param="b" />
·将获得的b的值传给a
<jsp:setProperty name="xxx" property="a" value="..." />
·将自定义的值传给a
<jsp:getProperty name="xxx" property="a" />
·取得变量a的值
scope四种范围:
page,只在当前页有效,适用于操作数据库
request,属性只保存在一次服务器跳转中,使用<jsp:forward>才可
session,属性保存在一次会话中,适用于开发购物车等
application,属性公有,此对象在整个服务器只实例化一次
十三、smartupload组件使用HTML:
<form action="xxx.jsp" method="post" ENCTYPE="multipart/form-data">
JSP:
<jsp:useBean id="smart" scope="page" class="xx.xx.xx">
<%
// 1、初始化
smart.initalize(pageContext);
// 2、准备上传
smart.upload();
// 3、保存上传的文件
smart.save("/upload");
%>
*对于上传图片,因为一般比较大,只能使用post提交方式
如果表单被封装(使用ENCTYPE),则无法使用request直接取得输入参数,此时必须使用smartupload:
将smartupload.jar拷贝到tomcat/common/lib下
取得上传文件的扩展名称:smart.getFiles().getFile(0).getFileExt();
保存文件:smart.getFiles().getFile(0).saveAs("/upload");
十四、开启Tomcat的目录列表功能打开conf\web.xml,找到
<servlet>
<servlet-name>default</servlet-name>
<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
将listings下面的false改成true开启。
十五、设置Tomcat的管理密码编辑conf目录的tomcat-users.xml
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
<role rolename="tomcat"/>
<role rolename="role1"/>
<role rolename="admin"/>
//添加 <role rolename="manager"/>
//添加 <user username="tomcat" password="tomcat" roles="tomcat"/>
<user username="both" password="tomcat" roles="tomcat,role1"/>
<user username="role1" password="tomcat" roles="role1"/>
<user username="..." password="..." roles="admin,manager"/>
//添加</tomcat-users>
分享到:
相关推荐
本资料包“JSP学习笔记”提供了丰富的学习资源,适用于初学者和有一定经验的开发者,用以提升对JSP的理解和应用能力。 ### 1. JSP基本概念 - **页面组成**:JSP页面由静态内容(HTML、CSS、JavaScript)和动态内容...
在这个"Servlet & JSP学习笔记NetBeans源代码"压缩包中,你将找到一系列与Servlet和JSP相关的示例代码,这些代码是基于NetBeans IDE编写的,并且是在Tomcat服务器上运行的。 Tomcat是一个开源的轻量级Web服务器和...
**JSP学习笔记总结** **第 1 章 JSP 和 Web 页面的交互** 1.1 JSP(JavaServer Pages)是Java技术在Web开发中的应用,它允许开发者将静态HTML与动态Java代码结合起来,生成动态网页。通过在HTML页面中嵌入Java代码...
### 韩顺平JSP学习笔记与源代码解析 #### J2EE的十三种技术(规范) 在韩顺平老师的教学笔记中,首先提到了J2EE平台下的十三种核心技术,这些技术对于理解JSP及其相关的Web开发环境至关重要。 1. **Java数据库...
《jsp学习笔记总结(收集)》 在IT领域,Java Server Pages(JSP)是一种用于构建动态网页的技术,它将HTML、CSS、JavaScript等客户端代码与Java代码结合在一起,使得开发者能够轻松地创建数据驱动的Web应用程序。...
【JSP学习笔记——初学者的选择】 JSP(JavaServer Pages)是JavaEE平台中用于构建动态网页的应用技术。作为初学者,理解JSP的基本概念和技术特性至关重要。 1. **为何选择JSP?** JSP的出现主要是为了解决...
### JSP学习笔记(三)——使用JSP处理用户注册和登录 #### 一、概述 本篇笔记介绍了一个简单的用户注册与登录系统的实现过程,该系统由四个JSP页面构成,分别是`login.jsp`、`test.jsp`、`test2.jsp`以及未给出具体...
在"Servlet&JSP学习笔记源代码"中,林信良教授通过实例讲解了这两项技术的基础和进阶知识。这些源代码是在Eclipse集成开发环境中创建的,Eclipse是Java开发的主流工具,支持丰富的插件,使得开发、调试和部署Servlet...
在《JSP学习笔记截屏1》中,我们可以预见到这是一份关于学习JSP过程中的记录,包含了韩顺平老师的视频教程内容和个人的学习心得。韩顺平老师是一位知名的Java和Web开发领域的讲师,他的课程通常深入浅出,易于理解,...
jsp学习笔记 jsp笔记是指关于jsp编程语言的学习笔记,jsp是java服务器页面的缩写,是一种基于java技术的动态网页编程语言。jsp技术主要应用于web开发领域,用于生成动态网页内容。 jsp隐式对象是jsp技术的核心之一...
### JSP 学习笔记概览 #### 为什么选择 JSP? 1. **动态效果**:JSP 允许在服务器端执行动态脚本,生成动态网页内容。 2. **状态管理**:能够处理客户端的状态信息,实现会话管理和用户认证等功能。 3. **重用性**...
JSP学习笔记-2.pdf
jsp学习笔记初级.pdf 本资源摘要信息介绍了JSP(Java Server Pages)学习笔记的初级阶段,涵盖了MVC模式、Java基础知识、JSP、Servlet、Javabean、JDBC、Spring、Struts2、Hibernate等关键技术。 MVC模式 MVC模式...
总结来说,JSP学习笔记主要涵盖了JSP的基本概念、结构、指令、动作、内置对象、EL、JSTL以及它们在实际开发中的应用。通过深入理解和实践这些知识点,你将能够轻松驾驭JSP,构建出高效且易于维护的web应用。
【标题】:jsp学习笔记,不错的入门级资料 【描述】:这是一份在达内科技学习过程中编写的jsp学习笔记,旨在为初学者提供一个基础到深入的学习路径。笔记内容丰富,覆盖了jsp的基本概念、语法特性以及常用功能,...
### JSP学习笔记精简版 #### 一、JSP简介 JSP(JavaServer Pages)是一种基于Java的服务器端动态网页技术标准。它通过在HTML文档中嵌入Java代码来实现动态页面的功能。与其他动态网页技术如ASP、PHP等相比,JSP具有...