JSP学习——基础语法

1.关于JSP的注释,有以下几种方式:

  • 显示注释:<!--....-->,这种注释写在html标签之外,而且在客户端可以通过右键->查看源代码看到注释内容;
  • 隐式注释:这种注释在客户端不能通过查看源代码看到。<%--....--%>也是在html标签外定义;再有就是JSP语句内的java注释//和/*..*/。

2.Scriptlet是JSP里面最重要的部分,也就是JSP语法,有三种语法:

  • <%..%>       在这里定义java局部变量和语句;
  • <%!..%>      在这里定义全局变量、方法和类,但是尽量不要在jsp中定义类或者方法,正确的思路是通过JavaBean的形式调用;
  • <%=..%>    此scriptlet是用来在HTML的一些标签中使用java定义的变量的:

为了实现HTML语句和java部分分离,不要使用out.println()来输出,而是使用Scriptlet来输出:

为了代码显示不那么混乱,又有了<jsp:scriptlet></jsp:scriptlet>,它可以作为<%%>的替代者,作用完全一样。

3.Page指令

page指令定义一些关于jsp页面的信息,像MIME类型、定义需要导入的包、错误页等,下面是常用属性:

在以上属性中,只有import属性可以重复多次。

指令语法:<%@ page 属性=“内容”%>

如果我们的MIME类型无法识别怎么办,我们故意写错一个字母contentType="test/html",此时再次用浏览器打开会出现下载框,提示用什么打开或者下载。

但是此时是无法打开的,因为他的MIME类型不合法。

我们在Tomcat的conf/web.xml中添加一个doc的MIME类型:


application指的是应用程序打开方式,后面的是名字随便起,但是最好是程序名,一看就知道是哪种类型的程序,比如这里可以写application/word。

然后设置jsp的MIME:

此时打开页面,会出现打开或下载提示框,我们选择一个能打开doc类型文件的程序来打开:

打开结果:

如果我们以一个无法解析doc文件的程序打开则会显示代码,比如这里用记事本打开则会显示代码。


此时的下载文件名是jsp的名字,如果我们要指定一个名字怎么办?

我们可以通过response对象来设置头信息的方式来指定一个下载文件的名字:

response.setHeader("Content-Disposition","filename=myName.doc");


编码方式有两种:pageEncoding=“..”和contentType="text/html;charset=.."。关于这两种的区别:

错误页的处理:

我试过不指定isErrorPage=“true”也能行,可能是tomcat版本(9.0)高的原因吗,不清楚,不过肯定有它的道理,所以不能省略。

关于服务器跳转和客户端跳转介绍:



有时候我们想要一些全局的ErrorPage,比如404、500错误或者某个类型的错误,那么我们需要在web.xml里面定义:

如果有无法跳转到错误页的情况:


数据库连接操作:

首先,需要建表:

管理员身份打开cmd->输入“net start mysql”启动MySql->用"mysql -u 用户名 -p 密码"命令进行登录mysql操作。

常见mysql语句:

  • 查看有哪些数据库:show databases;
  • 使用某个数据库:use 数据库名;
  • 查看数据库有哪些表:show tables;
  • 查看表结构:desc  表名;
  • 查看某个表的建表语句:show create table 表名;
  • 查询:select */列名=? from 表名 where 条件;
  • 数据条数限制:limit s,m(s是起点行数,从0开始,m是取多少条数据),如select * from 表名 limit 3,5;的意思是返回从取出的数据集合中的第4条开始,取出5条数据。
  • 查询某一列为NULL的数据:select * from  表名 where 列名 is NULL;注意是is,不是=。
  • 插入语句:insert into 表名([列名1,列名2..])  value(列名1的值,列名2的值...);注意这里的列名可以不按照表中的实际顺序来写,但是一定要一一对应,如果写成insert into 表名 value(列名1的值,列名2的值...);这种格式,那么顺序就要和表中的一致了。
  • 更新数据:update 表名 set 列名1=列名1的值,列名2=列名2的值..  [where  条件]。
  • 删除数据:delete from 表名 where  条件;

如果配置的时候没有设置好编码,那么插入中文的时候如果出现乱码,解决方法是打开安装目录下的my.ini,修改里面的default-character-set=GBK即可。

建完数据库和表,我们就要在jsp中使用它:

  1. 把mysql的驱动程序放入Tomcat的lib文件夹里;
  2. 创建jsp文件:
  •   jsp声明:注意import=“java.sql.*”导入包。
  •  全局变量定义:其中mysql驱动的包.类名可以通过解压程序打开驱动jar包,找到里面的Driver.class,然后把它的完整包.类名复制下来
  • 数据库操作代码:

         

包含指令:

什么是包含,就是代码复用,比如多数页面中都有工具栏、标题栏和底部,那么我们可以分别把工具栏、标题栏和底部做成一个文件,在需要的时候直接导入他们即可,当然如果你不嫌麻烦你也可以每一个页都去写一遍...

那么包含指令的作用就是把外层文件加入当前页中使用。

包含指令又分为静态包含和动态包含两种,静态包含用<%@ include file="文件路径"%>来处理,他的原理是先把包含文件和被包含文件的内容整合后统一显示;动态包含用<jsp:include page="要包含的文件路径|<%=表达式%>" flush="true|false"></jsp:include>来处理,其中flush为true表示网页内的buffer满了就输出,false表示整个网页被读进来后输出,可以不写,默认为true,他的工作原理是等到被包含页处理完了,把结果拿过来一块显示。他俩区别的最明显的一个例子就是,假如我的包含页和被包含页都定义了一个x变量,如果用静态包含的话会报“变量重复定义”的错误,如果使用动态包含的话就不会。

动态包含还有一个作用就是可以向被包含页传递参数。

代码示例:

包含页


被包含页


跳转指令(服务器端跳转,即前端地址一直没变):







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值