WEB JSP入门

一、基本语法

JSP声明  

全局 <%! int i = 0; %> 

局部 <% int i = 0; %> 


JSP指令

三个编译指令为:pageincludetaglib

七个动作指令为:jsp:forwardjsp:paramjsp:includejsp:pluginjsp:useBeanjsp:setPropertyjsp: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

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。