java-web复习知识点
一、页面基础
·背景颜色
bgcolor="red"/"#ABOO1F"
·表格的定义
<table><tr>行<td>列</td></tr></table>
·链接
<a href="相对路径?id=12">
·表单
<from action="相对路径" method=”post”>
<input= type=""></input>
</from>
·字体颜色
<font color=""></font>
·显示图片
<img src="相对路径">
二、Tomcat
·安装目录下的重要文件夹
1.所有站点可以共享的jar文件
2.特定站点的lib是只能特点的站点使用的jar
3.webapps是web应用程序主要的发布目录,通常发布的站点在这里面
4.lib/servlet-api.jar
·修改端口号
1.conf/servler.xml文件的connector port="8080"
·部署站点机器资源
1.webapps中站点名字文件夹,并且再新建web-inf文件夹下配置web.xml文件,文件内容必需要有web-app标签
2.站点文件中要有html或者jsp文件
3.web-inf下要有classes文件下,这个文件夹之下要有java文件,也就是站点配置
4.web-inf也可以有lib目录,这之下就是这个站点特有的jar文件
·具体资源的访问路径(URL)
1.http//:127.0.0.1:8080/xxx/xxxx/xx.jsp
2.c:/Tomcat/webapps/abd/def/xxx.html
三、Servlet
·编程的步骤
1.
引用包import servlet.* import servlet.http.*
自定义类使用extend去继承GenericServlet/HttpServlet
·继承的关系
1.
GenericServlet
HttpServlet
·重写什么方法
1.doget和dopost
2.service()
·怎么编译?.class文件放哪里
1.放在classes中
2.javac编译
·配置文件怎么写
<web-app>
<servlet><servlet-name>xxx</servlet-name><servlet-class>包.类</servlet-class></servlet>
<servlet-mapping><servlet-name>xxx</servlet-name><url-pattern>/xxx(虚拟路径:映射类的路径,让url直接访问类)</url-pattern><servlet-mapping>
</web-app>
·怎么访问?
1.http://127.0.0.1:8080/站点名称/
四、请求和响应
·对应ServletRequest/ServletResponse和HttpServletRequest/HttpServletResponse
1.HttpServletRequest/HttpServletResponse作为浏览器请求和响应给servlet的接口
2.ServletRequest/ServletResponse是作为servlet服务器中调用http接口响应过来的方法
·中文字符的显示
1.response.setHeader("Content=Type","text/html;charset=utf-8");
2.request.setCharacterEncoding("utf-8")
·重定向
1.response.sendRedirect("/XXXX/XXX.jsp")
·转发
1.request.setSttribute("XXXX") 传递数据
2.request.getAttribute("XXXX") 获取数据
3.RequestDispatcher dispatcher = request.getRequestDispatcher("/转发的类"); 请求转发
dispatcher.forward(request,response);
·获取参数值
1.request.getParameter("XXXXX"),返回字符串类型
·获取请求客户端的IP地址
1.request.getRemoteAddr()
·定时刷新页面
1.response.setHeader("Refresh","3")
·获取PrintWriter
1.PrintWriter out =response.getWriter();
五、会话
·如何创建Cookie对象
1.Cookie cookie = new Cookie("key","value");
2.response.addCookie(cookie);
·保存Cookie并设置有效时长
1.cookie.setMaxAge(60*60);
·一次session的范畴
1.使用浏览器访问则是会话建立
2.浏览器关闭则是会话结束
·为什么是使用session记录用户是否已经登录
1.Http协议是无状态的,也就导致服务器无法分辨是谁浏览了网页。为了维持用户在网站的状态,比如登陆、购物车等,出现了先后出现了四种技术,分别是隐藏表单域、URL重写、cookie、session。session和cookie都是用来解决Http协议不能维持状态的问题,但是session只存储在服务器端的,不会在网络中进行传输,所以较cookie来说,session相对安全一些。
2.能在一个比较大的范围内有效,适合对用户登录信息的管理
结构如图:
六、JSP技术
·JSP运行原理
1.实际运行时JSP转servlet文件
2.servlet文件转换为class文件
2.对class文件进行编译运行再servlet实例
·JSP的基本语法
1.<% 变量方法表达式 %>
2.<%! 定义变量方法%>
3.<%= expression%>表达式
4.<%-- 注释信息 --%>
·JSP的动作
1.forward讲请求转发到其他web资源
2.include指令静态包含某个页面
·静态包含和动态包含的差异
1.<%@include file="被包含页面"%>当作当前JSP和包含的JSP合成一个java文件进行编译并运行
2.<jsp:include page="被包含页面"flush="true">先编译运行主JSP,之后再运行编译包含的JSP
·import
1.<%@ page import=“net.aykj.util.DomainUtil”%>
·9个内置对象
1.out;request;response;config;session;application;page;pageContext;exception
七、JavaBean
·什么是JavaBean
1.一种Java类
2.按照一定的规范进行编程的java程序
·遵循那些规范
1.必须有一个无参的构造方法
2.把类的属性私有化。(不能直接访问属性) private
3.必须提供公开的getter和setter方法。(通过getter和setter操作属性)
八、Filter、Listener
·编程步骤
1.创建一个类实现Filter接口(过滤器)
2.创建一个类实现ServletContextListener(监听器)
3.在web.xml对过滤器进行配置
2.在web.xml配置
·重写什么
1.inti
2.dofilter
3.destroy
4.一次拦截则不需要激活下一个过滤器,不激活FilterChain chain
·如何编写配置文件?
1.
<filter>
<filter-name>xxxx</filter-name>
<filter-class>过滤器类路径</filter-class>
</filter>
<filter-mapping>
<filter-name>xxxx<filter-name>
<url-pattern>过滤指定的文件</url-pattern>
</filter-mapping>
2.
<listener>
<listener-class>
监听器路径
</listener-class>
</listener>
·如何部署?
把过滤器和监听器放在claess文件夹下
·执行过程
1.浏览器请求的响应经过过滤器/监听器提交给servlet,servlet执行之后再返回过滤器和监听器再到浏览器
2.监听器>过滤器>servlet
九、JDBC
·编程的6个步骤
<%
Connection con=null;
try{
//1注册数据库驱动
Class.forName("com.mysql.jdbc.Driver");
//2获取数据库链接
con=DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb","root","123456");
//3PreparedStatement对象中添加sql语句
PreparedStatement pre=con.prepareStatement("insert into t_student (name,telphone) values (?,?)");
pre.setString(1,"wangwu");
pre.setString(2,"112234");
//4pre执行sql语句
int n=pre.executeUpdate();
//5根据返回值来看是否运行成功
out.print(n==1?"ok~~~~":"wrong~~~~");
}catch(Exception e){out.print(e.toString());}
finally{
//6关闭con接口链接
if(con!=null)
{
try{
con.close();
}catch(Exception ee){}
}
}
%>
<%
Connection con=null;
try{
//1
Class.forName("com.mysql.jdbc.Driver");
//2
con=DriverManager.getConnection("jdbc:mysql://localhost:3306/news_db","root","123456");
//3
PreparedStatement pre=con.prepareStatement("select * from t_news order by publish_date desc limit 10");
//4
ResultSet rs=pre.executeQuery();
//5
while(rs.next())
{
%>
<a href="view.jsp?id=<%= rs.getString("newsID") %>"><%= rs.getString("title") %></a>
<a href="delete.jsp?id=<%= rs.getString("newsID") %>">删除</a>
<a href="edit.jsp?id=<%= rs.getString("newsID") %>">编辑</a>
<br>
<%
}
}catch(Exception e){out.print(e.toString());}
finally{
//6
if(con!=null)
{
try{
con.close();
}catch(Exception ee){}
}
}
%>
·类、接口 及其方法
1.Driver接口:JDBC驱动程序必须实现的接口
2.DriverManager接口:加载JDBC驱动并且创建于数据库的链接
registerDriver方法:用于向DriverManager中注册给定的JDBC驱动程序
getConnection方法:用于建立和数据库的链接,并返回表示链接的Connection对象
3.Connection接口:java程序和数据库的链接,只有获得该链接对象后才能访问数据库并操作数据表
getMetaData方法:返回表示数据库的元数据的DatabaseMetaData对象
createStatement方法:创建一个Statement对象并讲sql语句发送到数据库
prepareStatement方法:创建一个PreparedStatement对象并讲参数化的sql语句发送到数据库
prepareCall方法:创建一个CallableStatement对象来调用数据库的存储过程
4.Statement接口:执行静态的sql语句,并返回一个结果对象
execute方法:用于执行各种sql语句。改方法返回一个boolean类型的值。
executeUpdate方法:用于执行sql中的insert,update,delete语句。
executeQuery方法:用于执行sql中的select语句,该方法返回一个表示查询的结果的ResultSet对象
5.PreparedStatement接口:封装了JDBC执行的SQL语句的方法,可以完成java程序执行sql语句的操作
6.ResultSet接口:保存JDBC执行查询时返回的结果集,封装在一个逻辑表格中。