WEB JSP入门
一、基本语法
JSP声明
全局 <%! int i = 0; %>
局部 <% int i = 0; %>
JSP指令
三个编译指令为:page、include、taglib。
七个动作指令为:jsp:forward、jsp:param、jsp:include、jsp:plugin、jsp:useBean、jsp:setProperty、jsp:getProperty。
一、编译指令
1、 page指令
通常位于jsp页面的顶端,同一个页面可以有多个page指令。语法格式如下:
〈% @page [language="Java"] [extends="package.class"] [import= "package. class I package. *},…"] [session="true I false"] [buffer="none I 8kb I size kb" 1 [autoFlush="true I false"] [isThreadSafe="true I false"] [errorPage="relativeURL"] [contentType="mimeType[ ;charset=characterSet]" I"text/html;charset= "808859-1"] [isErrorPage=" true I false"] %〉
1)language属性,一般情况就是java,代表jsp页面使用的脚本语言。
2)Extends属性,确定 JSP 程序编译时所产生的 Java 类,需要继承的父类,或者需要实现的接口的全限定类名。
1.import属性,用来导入包,有几个包是默认自动导入的。
2.Session属性,设定这个 JSP 页面是否需要 HTIP session 。
3.buffer属性,指定输出缓冲区的大小。输出缓冲区的 JSP 内部对象: out 用于缓存 JSP页面对客户浏览器的输出,默认值为 8kb,可以设置为 none ,也可以设置为其他值,单位为kb
4.autoFlush属性,当输出缓冲区即将溢出时,是否需要强制输出缓冲区的内容。设置为true 时为正常输出;如果设置为 false ,会在 buffer 溢出时产生一个异常。
5.errorPage属性,指定错误处理页面。如果本程序产生了异常或者错误,而该 JSP 页面没有对应的处理代码,则会自动调用该指令所指定的 JSP 页面。使用 JSP 页面时,可以不处理异常,即使是 checked 异常。(重定向到对应的错误处理页面,但是URL还是原来的URl,并不发生变化)如果这个页面不存在这个属性,那么一旦代码出现问题,就会在开发环境和IE浏览器上提示错误。可见这条属性控制异常处理的效果在表现形式上要好的多。
6.IsErrorPage属性,设置本 JSP 页面是否为错误处理程序。如果该页面本身己是错误处理页面,则无须使用 errorPage 属性。
7.ContentType属性,用于设定生成网页的文件格式和编码方式,即 MIME 类型和页面字符集类型,默认的 MIME 类型是 text/html; 默认的字符集为 ISO-8859-1 。
2、include指令
使用 include 指令,可以将一个外部文件嵌入到当前 JSP 文件中,同时解析这个页面中的 JSP 语句(如果有的话)。这是个静态的 include 语旬,不会检查所包含 JSP 页面的变化。
include 既可以包含静态的文本,也可以包含动态的 JSP 页面。静态的编译指令include ,是将被包含的页面加入进来,生成一个完整的页面。
include 编译指令的语法:
〈% @include file="relativeURLSpec" %〉
如果被嵌入的文件经常需要改变,建议使用<jsp:include>动作指令,因为它是动态的 include 语句。
二、 动作指令
1、 forward指令:forward 指令用于将页面响应控制转发给另外的页面。既可以转发给静态的 HTML页面,也可以转发到动态的 JSP 页面,或者转发到容器中的 Servlet。
JSP 的 forward 指令的格式如下:
对于 JSP 1. 0 ,使用如下语法:
<jsp:forward page=”{relativeURL |<%=expression%>}” />
可使用如下语法:
<jsp:forward page=”{relativeURL |<%=expression%>}”>
{<jsp:param…/>}
</jsp:forward>
第二种语法用于在转发时增加额外的请求参数。增加的请求参数的值可以通过HttpServletRequest 类的 getParameter方法获取。
2、 include指令,它是一个动态的指令,可以用于导入某个页面。它的导入会每次检查被导入页面的改变。下面是include指令的使用格式:
<jsp:include page=”{relativeURL |<%=expression%>}” flush=”true” />
或者:
<jsp:include page=”{relativeURL |<%=expression%>}” flush=”true”>
<jsp:param name=”paramName” value=”paramValue”/>
</jsp:include>
flush 属性用于指定输出缓存是否转移到被导入文件中。如果指定为剧。则包含在被导入文件中;如果指定为false,则包含在原文件中。对于JSP 1.1以下的旧版本,只能设置为false。
<include>和<jsp:include>分别为静态导入和动态导入。他们的的区别:静态导入是将被导入页面的代码完全插入,两个页面生成一个整体的 Servlet; 而动态导入则在 Servlet 中使用动态导入,从而将页面引入。
二、与MySQL连接
在MySQL启动情况下,在项目WEB-INF -> lib 下放mysql的链接驱动 mysql-connector-java-5.0.8-bin.jar 就可以通过Class.forName链接MySQL。
form action通过post方式传递用户名密码到我的jsp后,通过 request.getParameter("id") 获得,通过PreparedStatement 和 setString 编译成SQL语句。
如果查找到,就在session中记录用户名,便于下次检查session判断登录状态和用户名信息。
如果没有找到,设置err信息传递给登录界面,用于显示错误信息。
<% String sql = "SELECT name FROM person where name=? and password=?"; try { Class.forName("com.mysql.jdbc.Driver"); Connection conn = DriverManager.getConnection( "jdbc:mysql://localhost:3306/DB", "root", ""); PreparedStatement pstmt = conn.prepareStatement(sql); pstmt.setString(1, id); pstmt.setString(2, password); ResultSet rs = pstmt.executeQuery(); if (rs.next()) { flag = true; // 将用户名保存在session之中 session.setAttribute("uname", rs.getString(1)); } else { // 保存错误信息 request.setAttribute("err", "错误的用户名及密码!!!"); } rs.close(); pstmt.close(); conn.close(); } catch (Exception e) { } %> <% // 跳转 if (flag) { // 用户合法 %> <jsp:forward page="login_success.jsp" /> <% } else { // 用户非法 %> <jsp:forward page="login.jsp" /> <% } %>
三、SQL语句
基础语句(大小写不敏感):
1、创建数据库
Create DATABASE database-name
2、删除数据库
drop database dbname
3、备份sql server
--- 创建 备份数据的
device
USE master
EXEC sp_addumpdevice ‘disk‘, ‘testBack‘,
‘c:\mssql7backup\MyNwind_1.dat‘
--- 开始 备份
BACKUP DATABASE pubs TO
testBack
4、创建新表
create table tabname(col1 type1 [not null] [primary
key],col2 type2 [not null],..)
根据已有的表创建新表:
A:create table tab_new
like tab_old (使用旧表创建新表)
B:create table tab_new as select col1,col2… from
tab_old definition only
5、删除新表
drop table tabname
6、增加一个列
Alter table
tabname add column col
type
注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。
7、添加主键: Alter
table tabname add primary key(col)
删除主键: Alter table tabname drop primary
key(col)
8、创建索引:create [unique] index idxname on tabname(col….)
删除索引:drop index idxname
注:索引是不可更改的,想更改必须删除重新建。
9、创建视图:create view
viewname as select statement
删除视图:drop view
viewname
10、几个简单的基本的sql语句
选择:select * from table1 where 范围
插入:insert
into table1(field1,field2) values(value1,value2)
删除:delete from table1 where
范围
更新:update table1 set field1=value1 where 范围
查找:select * from table1
where field1 like ’%value1%’ ---like的语法很精妙,查资料!
排序:select * from table1 order
by field1,field2 [desc]
总数:select count as totalcount from
table1
求和:select sum(field1) as sumvalue from table1
平均:select avg(field1)
as avgvalue from table1
最大:select max(field1) as maxvalue from
table1
最小:select min(field1) as minvalue from table1
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。