JSP笔记

tomcat的安装

网址:https://tomcat.apache.org/

1.了解tomcat解压后的目录结构

tomcat目录结构截图
bin:可执行文件
conf:配置文件
lib:tomcat依赖的jar文佳
logs:日志文件
temp:临时文件
webapps:可执行的项目(之后开发的项目存放处),默认访问目录下的ROOT项目。
work:存放有jsp翻译成的java,Java编译的class文件

2.配置tomcat环境变量

注意:配置tomcat环境变量之前需要提前配置Java的环境变量。
windows:右键此电脑 ->

右键此电脑
属性
高级系统设置
环境变量

在此添加 CATALINA_HOME 变量,变量值为tomcat安装目录
使用浏览器打开:localhost:8080,出现如下图,即配置成功!
在这里插入图片描述

3.修改默认端口

conf目录
server文件
找到如下命令处

在这里插入图片描述
图中的 port 属性值就是默认端口,修改属性值重启tomcat服务,就可以了(我将它修改成了8848,这样可以使用 localhost:8848 访问tomcat了)。

4.常见浏览器状态码

200:正常
404:资源无法访问
500:代码存在错误

5.tomcat项目结构

在这里插入图片描述
CSS:css样式文件夹
images:图片文件夹
WEB-INF:配置文件夹
index.jsp:主页面

WEB-INF目录结构:
在这里插入图片描述
classes:class文件夹
lib:存放项目依赖jar包
jsp:存放部分jsp文件
web:配置文件

6.修改默认主页

在tomcat项目的 WEB-INF 文件夹内的web.xml配置文件修中添加如下代码:
在这里插入图片描述

 <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.xhtml</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
	</welcome-file-list>

修改welcome-flie标签中的值即可。

7.虚拟路径配置

a.配置server.xml文佳

conf
server.xml

在这里插入图片描述
在Host标签内添加

<Context docBase="" path="" />
path:虚拟路径(绝对路径 or 相对路径[相对于webapps文件夹])
appBase:实际路径

例如:
<Context docBase="C:\Apps\myProject" path="/myProject" />

添加成功后需要重启tomcat服务

b. 在Catalina文件夹内创建与项目对应的配置文件(无需重启)

conf
Catalina
创建 项目名.xml

在新建的 项目名.xml 中写入

<Context docBase="" path="" />

8.tomcat执行流程

请求
响应
客户端
tomcat

第一次访问tomcat服务器:tomcat将jsp翻译成Java文件,再编译成class文件,所以第一次访问会相对而言慢些。
第二次访问tomcat服务器:直接访问class文件(当服务端修改文件时,需要重新翻译、编译)

jsp文件
Java Servlet文件
class文件

9.在eclipse中配置tomcat

第一步:

window
Server
Runtime Environments
Add

在这里插入图片描述
选择对应版本
在这里插入图片描述
Browse 选择安装路径,JRE选择对应版本,或者使用网络下载新的。
在这里插入图片描述
第二步:
在控制面板添加tomcat服务
在这里插入图片描述
注意如果创建的jsp文件第一行报错,则需要导入tomcat所需的jer包

右键项目
Build Path
Add library
Sever Runtime

10.创建web项目

file
new
Other
搜索web 选择Dynamic Web Project 动态WEB页面

在这里插入图片描述

11.统一字符集编码

编码分类:

  1. 设置jsp文件的编码(jsp文件中page标签中的pageEncoding属性)
jsp
java
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
  1. 设置浏览器读取jsp文件的编码(html中meta标记的charset属性)
<meta charset="UTF-8">
  1. jsp文件的文件编码

单独文件设置:

右键文件
Properties
Resource
设置other选项为UTF-8

单独项目设置:

右键项目
Properties
Resource
设置other选项为UTF-8

全局设置(推荐):

window
preferences
搜索jsp 选择JSP Files
设置encoding选项为UTF-8

注意:此设置只有之后的JSP文件生效

12.给项目添加tomcat所需的jar包

目的:在初次使用eclipse编写jsp文件,第一行报错。

右键项目
Build path
Add Library
选择Server Runtime
选择tomcat

JSP

1.jsp的页面元素

a.java代码

<%
局部变量,java语句[java程序片]
%>

<%!
全局变量,定义方法[java变量,方法]
%>
 
<%=输出表达式[不需要分号结尾]%>

注意:一般情况下,修改jsp文件不用重启tomcat服务,修改tomcat配置文件则需要。

b.指令

<%@ page%>
属性:
language:说明jsp页面使用的脚本语言
import:导入类
pageEncoding:jsp文件自身的编码
contentType:浏览器解析的编码
charset:和contentType相似

c.注释
html注释:
Java注释://     or     /* */
jsp注释:<%-- --%>

2.jsp内置对象[全局对象 类似于Object]

out

概述:输出对象,向客户端输出内容

request

概述:请求对象;存储客户端向服务器请求的信息。
request常用方法[函数]:

String getParameter(String name):根据请求的key值,返回字段值value

String[] getParameterValues(String[] name):根据请求的key值,返回字段值多个value,一般用于HTML表单中的复选框

注意:getParameter getParameterValues都是通过input标签中name属性值拿value值。

注意:getParameter getParameterValues都是通过input标签中name属性值拿value值。

void setCharacterEncoding(“编码格式[utf-8]”):设置post请求编码

getRequestDispatcher(“转发地址”).forward(request,response):请求转发

ServletContext getSeverContext():获取项目的ServletContext对象。

response

概述:响应对象
常用方法:


void addCookie(Cookie cookie):服务器向客户端增加cookie对象

void sendRedirect(String location) throws IOException:页面跳转的一种方式(重定向)

void setContentType(String type):设置服务端响应的编码

请求转发和重定向的区别:
请求转发保留提交的数据,地址栏不变。请求次数为1,跳转位置在服务端。
重定向不可保留提交的数据,但是地址栏会变。请求次数为2,跳转位置在客户端。

编码问题

如果出现编码错乱时:
a.可以通过转换编码解决

String name;
name = request.getParameter("name");//获取name
name = new String(name.getBytes("ios-8859-1"),"utf-8")//将ios-8859-1编码的name转换为utf-8编码

b.修改server.xml文件,在端口修改的那个标签添加URIEncoding="UTF-8"即可。



pageContext

概述:JSP页面容器

Cookie

概述:Cookie对象是由服务端生成的,在发送给客户端常用于存储账号等等信息(类似与window.sessionStorage、window.localStorage效果类似,不过这两个是本地自己生成的。)
Cookie以键值对的方式存在,name 和 value。
通过javax.servlet.http.Cookie导入包
构造方法:public Cookie(String name,String value)
String getName();获取name值
String getValue();获取value值
void setMaxAge();设置最大有效期,单位秒
创建Cookie对象:通过new Cookie(),构造方法赋值
添加Cookie对象:通过response.addCookie(Cookie cookie)
发送Cookie对象:通过转发、重定向的形式响应发送给客户端
获取Cookie对象:通过request.getCookies(),只能一次性获取所有Cookie对象

session

概述:会话对象
运行机制:在客户端第一次发送请求给服务端,服务端就(匹配sessionid,没有匹配成功,则说明客户端是第一登录,需要创建session对象)会创建一个这个客户端的session对象,这个session对象创建是会创建一个ID用于区分和保存一些客户端的信息,当服务端响应客户端时,将session对象ID以Cookie对象形式发送给客户端(name为JSESSIONID)
           第二次(n次)请求服务器时:服务器会先用客户端的Cookie中的JSESSIONID,匹配服务器的sessionid,成功则说明客户端之前登过。


机制:
a.session存储在服务端
b.session是在同一用户(客户端)共享
c.实现机制:第一次访问时,服务端生成一个session对象,将session对象的id以cookie的形式发送给客户端,用于之后的识别。
常用方法:
String getId();获取sessionid
boolean isNew();判断是否为第一次访问
void invalidate();使session失效,一般用于用户注销登录时,注销服务端的session对象。
void setAttribute(key,value);添加属性
Object getAttribute(key);添加属性,返回值可能是Object数据,需要转型。

String name = session.getAttribute("uname").toString();

removeAttribute(String name);删除属性
void setMaxInactiveInterval();设置最大有效 非活动时间,单位秒
int getMaxInactiveInterval();获取最大有效 非活动时间,单位秒



session 和 cookie的区别
名称存储位置相比较返回值对象类型
cookie客户端不安全String
session服务端安全Object
作用域

session:同一次会话共享



applicaton

概述:应用程序对象
String getContextPath();获取虚拟路径
String getRealPath(String name);获取指定虚拟路径的绝对【真实】路径(相对路劲 or 绝对路径)

	<%=application.getContextPath() %><br/>//获取当前页面的虚拟路径
	<%=application.getRealPath("/my_jsp_tomcat") %>//获取指定虚拟路径对应的绝对路径


config

概述:配置对象

out

概述:输出对象

page

概述:当前JSP页面对象(相当于java中的this)

exception

概述:异常对象



四种范围对象

pageContext JSP页面对象(pege) 当前页面有效
request请求对象 同一次请求有效(重定向之后无效)
session会话对象(请求转发,重定向之后都有效,注销、关闭浏览器或者切换浏览器不无效)同一次对话有效
appliation全局对象 全局有效(整个项目有效,关闭服务器,切换其他项目则无效)
以上四种对象共有方法:
Object getAttribute(String name);根据属性名,获取属性值
void setAttribute(String name,Object obj);设置属性值(新增,修改)
void removeAttribute(String name);根据属性名,删除属性对象


注意:实现同功能,可以使用小范围则使用小范围,性能损耗更小



JDBC

JDBC:java database connectivity,可以为多种关系型数据库DBMS 提供统一的访问方式,用java来操作数据库
在这里插入图片描述

常见问题

a.如何操作JDBC
通过JDBC API操作(接口、方法、类):提供各种操作访问接口,Connection Statement PreparedStatement ResultSet


b.JDBC DriverManager:管理不同的数据库驱动


c.各种数据库驱动是由数据库厂商提供

操作流程

大致:

  1. 与数据库建立连接
  2. 发送SQL语句
  3. 返回处理结果

详细:

  1. 导入驱动(将jar包复制到项目),加载具体的驱动类
import java.sql.*;


public class jdbc {
	private static final String URL = "jdbc:oracle:thin:@localhost:1521:Orcl";//链接字符串
	private static final String USERNAME = "soctt";//用户名
	private static final String PWD = "tiger";//密码
	public static int updata(String sql){
		Connection connect = null;
		Statement st = null;
		try{
			Class.forName("oracle.jdbc.OracleDriver.class");//加载驱动类
			connect = DriverManager.getConnection(URL,USERNAME,PWD);//与数据库建立连接
			st = connect.createStatement();//通过连接对象获取操作对象
			int count = st.executeUpdate(sql);//执行sql代码
			return count;//返回值
		}catch (ClassNotFoundException e) {
			e.printStackTrace();
		}catch (SQLException e) {
			e.printStackTrace();
		}catch (Exception e) {
			e.printStackTrace();
		}finally {
			//关闭资源
			try {
				if(st != null)st.close();
				if(connect != null)connect.close();
			}catch (SQLException e) {
				e.printStackTrace();
			}
			
		}
		return 0;//默认返回值
	}
}

驱动类位置:
oracle:oracle.jdbc.OracleDriver
mysql:com.mysql.jdbc.Driver
sqlServer:com.microsoft.sqlserver.jdbc.SQLServerDriver
连接字符串:
oracle:jdbc:oracle:thin:@localhost:1521:Orcl
mysql:jdbc:mysql://localhost:3306/数据库实例名
sqlServer:jdbc:microsoft:sqlserver:localhost:1433;databasename=数据库实例名

  1. 与数据库建立连接
  2. 发送sql语句,执行
  3. 处理结果

常见接口

DriverManager:管理jdbc驱动
Connection:连接
Statement(PreparedStatement):增删改查
CallableStatement:调用数据库中的/存储过程/存储函数
Result:结果集

常用方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值