|
表格标记,用于创建表格 |
|
文本样式标记,用于为文本添加粗体、斜体、下划线、删除线等样式。 |
… |
|
Response对象
response对象作用
response对象用于对用户的请求做出响应。
response对象常用方法
方法名 |
描述 |
setContentType(String s) |
改变返回MIME类型,按照新的响应类型返回 |
sendRedirect(URL url) |
重定向,将用户重新引导到一个页面(输错登录信息,引导重新回到登录页) |
setHeader(“key”,“value”) |
设置新的HTTP头,例如response.setHeader(“refresh”,“5”);每五秒刷新一次 |
Session对象
session对象用来在客户首次访问服务器时,将为该客服创建一个session对象,用来记录连接的信息。
session对象常用方法
方法名 |
描述 |
setAttribute(key,obj) |
session对象调用该方法将参数key指定对象存进session当中 |
getAttibute(String key) |
获取session对象当中关键字是key的对象。 |
getAttributeNames() |
session对象调用该方法产生一个枚举对象,该枚举对象使用nextElements()遍历session中各对象所对应的关键字 |
getCreationTime() |
session对象调用该方法可以获取该对象创建的时间 |
removeAttribute(String key) |
session对象调用该方法移除关键字key对应的对象 |
session对象的生存期限(生命周期)
换个说法,啥时候session会gameover!!!
session对象失效的方式
(1)关闭浏览器(把浏览器叉出去,不配运行)
(2)session对象调用invalidate() (自杀,不陪你玩了,自己去亖)
(3)设置发呆时间,setMaxInactiveInterval(int interval) 单位毫秒 (活到55岁就可以退休了~~~)
Application对象
application对象是访问同一个web目录下所有用户共享的
对于一个Web容器,所有用户都共享一个application对象,服务器启动后,就会自动创建一个application对象,这个对象就会一直保存,直到服务器嘎了。
application对象常用方法
方法名 |
描述 |
setAttribute(key,obj) |
application对象调用该方法将参数key指定对象存进session当中,如有重复,替换 |
getAttibute(String key) |
获取application对象当中关键字是key的对象。 |
getAttributeNames() |
对象调用该方法产生一个枚举对象,该枚举对象使用nextElements()遍历application中各对象所对应的关键字 |
removeAttribute(String key) |
该方法移除关键字key对应的对象 |
getServletInfo() |
application对象调用该方法获得servlet编译器的当前版本信息 |
生命周期
生于服务器开始,崩于服务器嘎~
session对象和Application区别
(1)两者的作用范围不同:session是用户级别的,application是web应用程序级别的,是一个全局作用域
(2)每一个用户都有一个自己的session,而所有用户可以共享通一个application,相当于全局变量。
第四章 JavaBean
JavaBean概念
JavaBean是一种Java类,通过封装属性和方法成为具有某种功能或者处理某个业务的对象。
特点:
(1)代码复用(2)易编写易维护(3)一次编译多次运行
一颗
public class User{
private int id;
private String name;
public void setId(int id){
this.id=id;
}
public int getId(int id){
teturn id;
}
public void setId(String name){
this.name=name;
}
public String getId(String name){
teturn name;
}
}
使用JavaBean
usebean
动作标记用来加载JavaBean
语法如下
其中scope可以取值:page/request/session/application
page:当前页面有效
request:一次请求内有效
session:会话期间内有效
application:全局有效
setProperty存储属性
与是联系在一起的,同时使用的名字是一起的,即
的name值和 id值是相同的
四种语法格式
javaBean
name:Bean的实例名
property:Bean中的属性名称
语法一
其中property表示将所有的参数的名字和属性都将传递给相应的set方法
语法二
例如在javaBean(java实体类)中一个名为private String name的属性
仅仅为有选择的对bean中的属性赋值
语法三
将value的值赋给property中指定的Bean属性
语法四
getProperty属性
动作用于从一个JavaBean中获取某个属性值
语法
获取属性名为propertyName属性值
获取bean中的所有属性值
第五章 Servlet
Servlet概念
servlet是运行在服务端的一种Java技术,用Java语言编写的服务器端程序
Servlet是使用Java Servlet应用程序接口(API)用来处理客户端传来的HTTP请求。并返回响应
使用Servlet时,需要继承一个HTTPServlet
Servlet需要在web.xml中进行描述,编写映射类(mapping),和Servlet类映射。随着Java的发展,现在可以不使用xml文件进行映射,可以直接在Servlet类上通过使用注解来解决映射问题@WebServlet("url")来解决
xml文件的编写
<servlet>
<servlet-name>LoginServletservlet-name>
<servlet-class>com.controller.LoginServletservlet-class>
servlet>
<servlet-mapping>
<servlet-name>LoginServletservlet-name>
<url-pattern>/loginurl-pattern>
servlet-mapping>
完成一个请求需要在xml当中编写一个servlet和servlet映射(servlet-mapping)
在servlet中至少需要配置两个属性
:表示当前servlet名称,不强制和Servlet.java文件名一致,随意
:表示servlet-class类的位置,从src下开始找-包名-文件名
在servlet-mapping当中至少需要配置两个属性
:必须与相对应servlet的名字一致,也就是上面的servlet-name
:表示映射路径,即jsp页面请求的地址
Servlet的生命周期
(1)加载:当容器启动时,会加载 Web 应用程序中的所有 Servlet 类,并创建与其相应的 Servlet 实例。在加载 Servlet 类时会执行它的类加载器。
(2)初始化:在 Servlet 实例创建后,容器会调用它的 init() 方法对其进行初始化。在 init 方法中可以进行一些初始化操作,如读取配置文件、初始化数据库连接等。init 方法只会在 Servlet 被创建时调用一次。
(3)运行:在 Servlet 实例创建且初始化后,容器会调用其 service() 方法处理来自客户端的请求。service 方法会被多次调用,每次响应客户端请求时都会执行一次。在 service 方法中,根据请求类型可以调用 doGet 或 doPost 等方法来响应请求。
(4)销毁:当容器需要销毁一个 Servlet 实例时,它会调用其 destroy() 方法,释放资源、关闭连接等。destroy 方法只会在 Servlet 卸载时调用一次。
(5)卸载:当容器关闭时,会卸载 Web 应用程序中的所有 Servlet 实例,将该 Servlet 实例从容器中移除,并释放其所占的资源。
JSP访问Servlet
表单访问
超链接访问
点我访问Servlet
Servlet之间的通信
简而言之,即页面的重定向和转发
重定向
重定向的功能是将当前用户从当前页面或Servlet定向到另一个JSP页面或者Servlet中,是HttpServletResponse类中的方法
实现重定向
resp.sendRedirect()
转发
转发的功能是将用户对当前JSP页面或者Servlet请求转发到另一个JSP页面或者Servlet,是request中的方法
实现转发
req.getRequestDispatcher(RUL)..forword(req,resp)
重定向和转发两者的区别
(1)重定向访问服务器两次,转发只访问服务器一次
(2)转发页面的URL不会改变,而重定向地址会改变
(3)转发共用一个request请求,重定向则不会有
(4)...
换个说法(借作业)
转发相当于张三找李四借作业,李四也没写,他就找王五要作业,然后将作业给张三
重定向相当于张三找李四借作业,李四也没写,并告诉张三,王五有,找他
Servlet中方法
Servlet方法中常使用的方法有doGet、doPost方法
doGet方法和doPost方法的调用通常是有form表单决定(默认doGet)
这是一个登录的Servlet实例
public class LoginServlet extends HttpServlet{
@Override
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
this.doPost(req, resp);
}
@Override
public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("进入登录处理界面");
req.setCharacterEncoding("UTF-8");
resp.setContentType("text/html;charset=utf-8");
String username=req.getParameter("username");
String password=req.getParameter("password");
DaoFromDB dfb=new DaoFromDB();
boolean flag=dfb.login(username, password);
if (flag) {
HttpSession session =req.getSession();
session.setAttribute("name", username);
req.getRequestDispatcher("/admin/main.jsp").forward(req, resp);
}
}
}
在Servlet中使用session
HttpSession session =req.getSession();
session.setAttribute("name", username);
Servlet过滤器
概念概念概念
Servlet过滤器主要是用于对浏览器的请求进行过滤处理,将过滤后的请求再转发给下一个资源。
作用可以限制用户访问某些资源或者再处理请求资源时提前处理某些资源的时候,就可以使用过滤器
开发过滤器过程
(1)实现接口Filter(javax.servlet.Filter)
(2)重写init()方法
(3)重写doFilter()方法
(4)重新destroy()方法
2.配置Filter在web.xml当中
<wab-app>
<filter>
<filter-name>过滤器名称filter-name>
<filter-class>过滤器类名路径filter-class>
filter>
<filter-mapping>
<filter-name>过滤器名字(和保持一致)filter-name>
<url-pattern>/需要过滤的JSP文件或者Servlet或者任意路径url-pattern>
filter-mapping>
wab-app>
3.编写过滤类
这是一个真实的登录过滤器(把资源给阻挡)
public class Filters implements Filter {
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest)request;
HttpServletResponse resp = (HttpServletResponse)response;
resp.setContentType("text/html;charset=UTF-8");
req.setCharacterEncoding("UTF-8");
HttpSession session =((HttpServletRequest)request).getSession();
String name=(String)session.getAttribute("name");
if (name == null) {
PrintWriter out =response.getWriter();
out.print(new String("您还未登录,请您登录".getBytes(),"UTF-8"));
}else {
chain.doFilter(req, resp);
}
}
}
第六章 JSP访问数据库
JDBC概述
JDBC(JAVA DataaBase Connectivity ,java数据库连接)是在Java中面向对象的方法来连接数据库的技术。
三大功能
(1)与数据库建立连接
(2)向数据库发送SQL语句
(3)处理数据库返回的结果
API
Conncetion(链接数据库)
Statement(建立操作指令)
executeQuery(执行查询指令)
ResultSet(获得查询结果)
建立数据库
首次打开数据库管理工具要做的事是先要新建连接!!!
连接名:
主机名或ip地址:localhost
端口号:3306
用户名:root
密码:123456或空
2.新建数据库
数据库名:自由发挥(就当这里是English)
字符集:utf8
排序规则:utf8_general_ci
一般是这样,具体按照实际情况更改
然后创建表…不解释就说明都会了~~
加载驱动
Class.forName("oracle.jdbc.dirver.OracleDriver");
Class.forName("com.microsoft.sqlserver.jdnc.SQLServerDriver");
Class.forName("com.mysql.jdbc.Driver");
建立链接
直接上代码
public class DbConnection {
private String driverName="com.mysql.jdbc.Driver";
private String url ="jdbc:mysql://localhost:3306/test_student";
private String usernameString="root";
private String userPwd="123456";
Connection connection;
public Connection getConnection() {
try {
Class.forName(driverName);
connection=DriverManager.getConnection(url,usernameString,userPwd);
} catch (Exception e) {
e.printStackTrace();
}
return connection;
}
public static void DbClose(Connection con,PreparedStatement ps, ResultSet rs) {
try {
rs.close();
ps.close();
con.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void DbClose(Connection con,PreparedStatement ps) {
try {
ps.close();
con.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
关闭链接必须要写,要不然 流会 一直没有被释放
增删改查
所谓面试造火箭,工作打螺丝,增删改查核心业务不能遗漏
查
语法格式:
select [Top]字段 from 表 [where条件][Order By排序字段][group By 字段]
select * from users
select name,password from users
select Top(3)* from users
select * from users where datas<
select * from users where id =1
增
语法格式:
insert into 表(字段1,字段2,...) values(值1,值2,...)
insert into user (username) values("li")
insert into user(username,password) values("li","158218")
改
语法格式:
update 表 set 字段1=值1,字段2=值2 [where条件]
update user set username="lilili" where id=1
update user set age=age+10
删
语法格式:
delete from 表 [where条件]
delete from user where name="li"
第七章 MVC编程模式
MVC概述
MVC全名是model view controller,是模型-视图-控制器的缩写,是一种软件设计典范
- 视图层(view)
- 负责和用户的交互和显示数据。用于提交和显示数据,通常是一个或多个JSP页面
- 模型(model)
- 用于连接并处理数据库信息。用于存储数据对象,通常是一个或多个JavaBean对象
- 控制器(controller)