JSP学习笔记(一)

JSP动态网页

1.动态、静态:
1、不要 和 是否有“动感”混为一谈
2、是否 随着 时间、地点、用户操作的改变而改变

动态网页 需要使用到 服务端脚本语言(JSP)

2.架构:
CS:Client Server
CS不足:
a 如果软件需要升级,那么全部软件都需要升级
b 维护麻烦:需要维护每一台 客户端软件
c 每一台客户端 都需要安装 客户端软件
优势:响应快、美观

BS:Broswer Server
客户端可以通过 浏览器 直接访问服务端

注意:bs和cs各有优势

3.tomcat解压后目录:
bin:可执行文件(startup.bat shutdown.bat)
conf:配置文件(server.xml)
lib:tomcat依赖的jar文件
logs:日志文件(记录出错等信息)
temp:临时文件
webapps:可执行的项目(将我们开发的项目 放入该目录)
work:存放由jsp翻译成的java,以及编辑成的class文件(jsp -> .java->.class)

4.配置tomcat
a.配置jdk (必须配置JAVA_HOME)
java_home classPath path
b.配置tomcat
catalina_home

双击bin下 startup.bat启动tomcat
常见错误:可能与其他服务的端口号冲突
tomcat端口号默认8080 (此端口号较为常见,容易冲突),建议修改此端口 7777或8888

5.访问tomcat
http://localhost:7777/

常见状态码:
200:一切正常
404:资源不存在
403:权限不足(如果访问a目录,但是a目录设置不可见)
300/301:页面重定向(跳转)
500:服务器内部错误(代码写错了)
其他编码:开发中积累吧 少年!

jsp:在html中嵌套的java代码

在项目/WEB-INF/web.xml中设置 默认的 初始页面
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>

6.虚拟路径
a.方式一
将web项目配置到webapps以外的目录
在server.xml中 -> Engine -> Host -> 自己新建 Context 之后添加路径
docBase: 实际路径
path: 虚拟路径 (绝对路径、相对路径【相对于webapps】都可以) 通过path访问docBase
例:
缺点:需要重启

b.方式二
在路径D:\apache-tomcat-8.0.32\conf\Catalina\localhost下:
新建 “项目名.xml”中新增一行

优点:不需要重启

7.虚拟主机
通过www.test.com访问本机
a. conf/server.xml
<Engine defaultHost="www.test.com" name="Catalina">
<Host appBase=”D:\study\JspProject” name=”www.test.com”>
<Context docBase=”D:\study\JspProject” path=”/”>
</Host>
b.在本机hosts增加映射:C:\Windows\System32\drivers\etc\host
增加
127.0.0.1 --> www.test.com
c. 可以把端口改成80这样不用输入端口也可以访问

流程:
www.test.com -> host找映射关系 -> server.xml找Engine的defaultHost -> 通过”/”映射到D:\study\JspProject
虚拟主机的配置了解就好 开发一般用不到!!!
8.JSP执行流程 <% %>
jsp -> java(Servlet) -> class
D:\study\apache-tomcat-8.5.30\work\Catalina\localhost\JspProject\org\apache\jsp

Jsp 和 Servlet 可以互相转换 没有jsp的时候就用servlet写但是比较麻烦
因为第一次请求服务端会有翻译与编译的过程,因此比较慢;后续访问可以直接访问class,
因此速度快;但是如果服务端修改了代码,则再次访问时,会重新的翻译和编译。

使用Eclipse开发Web项目(JSP项目) tomcat

1.在Eclipse中创建的Web项目:
浏览器可以直接访问WebContent中的文件
例如:http://localhost:8080/MyJspProject/index.jsp
其中的index1.jsp就在WebContent目录中
但是WEB-INF中的文件 无法通过客户端(浏览器)直接访问,只能通过请求转发来访问 注意:并不是任何内部跳转都能访问WEB-INF: 原因是跳转有两种方式:
请求转发、重定向

2.配置tomcat运行时环境 (创建jsp文件第一行报错的时候配置)
a.将tomcat/lib中的servlet-api.jar加入项目的构建路径(即导入jar包)
b.右键项目->Build Path -> Add library -> Server Runtime (常用 本质将tomcat中lib中全加入)
3.部署tomcat
在server面板 新建一个tomcat实例, 再在该实列中 部署项目(右键-add)
注意: 一般建议 将eclipse中的tomcat与本地tomcat的配置信息保持一致:
将eclipse中的tomcat设置为托管模式:【第一次】创建tomcat实例之后双击
该实例、选择Server Location的第二项
4.统一字符集编码
a.编码分类:
设置jsp文件的编码(jsp文件中的pageEncoding属性):jsp -> java
设置浏览器读取jsp文件的编码(jsp文件中content属性)
一般将上述设置成一致的编码: 例:UTF-8
文件编码:
i.将整个eclipse中的文件 统一配置 Window -> Preferences -> jsp files
ii.设置 某一个项目 项目右键 Preferences
iii.设置单独文件 jsp文件右键 Preferences
5.JSP的页面元素:
a.脚本Scriptlet
i.
<% 局部变量、java语句(大白话就是运算呀输出啥的写里面)%>
ii.
<%! 全局变量、定义方法 (不能输出,只能定义成员)%>
iii.
<%= 要输出的内容 %> 与在<%%>中写的 out.print()等价

一般而言,修改web.xml、配置文件、java 需要重启tomcat服务
但是如果修改Jsp\html\css\js,不需要重启

注意:out.println()不能回车;要想回车:“<br/>”,即out.print()
<%= %> 可以直接解析html代码

b 指令
page指令
page指定的属性:
language:jsp页面使用的脚本语言
import:导入类
pageEncoding:jsp文件自身编码 jsp->java
contentType:浏览器解析jsp的编码
例:<%@ page language=”java” contentType=”text/html;charset=UTF-8”
pageEncoding=”UTF-8” import=”java.util.Date” %>

c 注释
html注释 可以被客户 通过浏览器查看源码 所观察到
java注释// /* */
jsp注释 <%-- --%>

6. JSP九大内置对象(自带的对象,不需要new可以直接使用的对象叫做内置对象)
out: 输出的对象,向客户端输出内容

request: 请求对象:存储“客户端向服务端发送的请求信息”
request对象的常见方法:
String getParameter(String name) : 根据请求的字段名key,返回字段值value
String[] getParameterValues(String name) : 根据请求的字段名key返回多个字段值value input标签中: key为 name属性
void setCharacterEncoding(“编码格式utf-8”) : 设置post方式的请求编码
getRequestDispatcher(“b.jsp”).forward(request,response) : 请求转发的方式跳转页面
A -> B
ServletContext getServletContext() : 获取项目的ServletContext对象

get提交方式: method=”get” 和 地址栏、超链接 请求方式 默认都属于get
get与post请求方式的区别:
a get方式在地址栏显示请求信息(但是地址能够容纳的信息有限,4-5kb;)
post不在地址栏显示,且可以传文件等
b 文件上传操作,必须是post 推荐使用post方式

7 统一请求的编码 request
get方式请求 如果出现乱码,解决:
a 统一每一个变量的编码 (不推荐一个一个改属性多了麻烦死人)
new String(旧编码,新编码);
例子:name = new String(name.getBytes(“iso-8859-1”),”utf-8”)
b 修改server.xml ,一次性的 更改tomcat默认get提交方式的编码 (utf-8)
建议 使用tomcat时,首先在server.xml中 统一get方式的编码
在改端口号那里增加参数:URIEncoding=”UTF-8”
tomcat7默认:(iso-8859-1) tomcat8默认:(utf-8)

post方式请求 如果出现乱码,解决:
代码处增加:request.setCharacterEncoding(“utf-8”);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘二壮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值