过滤器完成步骤
1、实现javax.servlet.filter接口
public class Filter implements javax.servlet.Filter{
2、在web.xml文件中配置过滤器,相同于配置servlet
<filter>
<filter-name>SecondFilter</filter-name>
<filter-class>com.lanou.product.SecondFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>SecondFilter</filter-name>
<url-pattern>/list</url-pattern>
</filter-mapping>
3、根据逻辑条件决定是否执行下一环,并且在进入下一环之前对request和response进行编码格式等处理
public class Filter implements javax.servlet.Filter{
public void destroy() {
}
//chain 连接很多相同内容就可以形成链条
public void doFilter(ServletRequest req, ServletResponse resp, FilterChain filterChain)
throws IOException, ServletException {
//给Servlet设置编码格式
req.setCharacterEncoding("UTF-8");
resp.setCharacterEncoding("UTF-8");
resp.setCharacterEncoding("text/html;charset=UTF-8");
System.out.println("Filter中的执行:调用servlet之前的一段代码");
//这里里就是执行Servlet,整个Servlet执行结束执行这个语句
filterChain.doFilter(req,resp);
System.out.println("Filter中的执行:调用servlet之后执行的代码");
}
public void init(FilterConfig arg0) throws ServletException {
System.out.println("初始化");
}
}
创建Servlet的两种方式
1、继承HttpServlet,重写doGet和doPost方法
特点:获取的参数是HttpServletRequest和HttpServletResponse
代码示例:
package com.lanou.product;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class MyServlet extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("Servlet中的执行:我是HttpServlet的执行");
//这里是被filter设置编码格式,但是这里是输出语句,无法设置
PrintWriter out = resp.getWriter();
out.println("<h1>hh 我是h1在页面的输出</h1>");
//out.close();
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}
2、实现Servlet接口,重写service方法,处理请求。
特点:获取的参数是ServletRequest和ServletResponse
代码示例:
package com.lanou.product;
import java.io.IOException;
import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import org.omg.CORBA.PUBLIC_MEMBER;
public class InterServlet implements Servlet{
@Override
public void destroy() {
// TODO Auto-generated method stub
}
@Override
public ServletConfig getServletConfig() {
// TODO Auto-generated method stub
return null;
}
@Override
public String getServletInfo() {
// TODO Auto-generated method stub
return null;
}
@Override
public void init(ServletConfig arg0) throws ServletException {
// TODO Auto-generated method stub
}
@Override
//处理请求的地方,请求过来就执行的方法
public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException {
System.out.println("serivce方法执行了");
String name = request.getParameter("name");
System.out.println("name:"+ name);
}
}
3、两者之间差别
HttpServlet比后者多了一些对于cookie的操作,带有一些http信息
CSS布局中浮动的特点
1、脱离文档流
2、向左或者向右浮动知道遇到父级元素或者另一个浮动元素
3、浮动子元素会影响父级元素,导致父级元素高度坍塌,父级元素需要清浮动
清浮动
1、clear:both;
2、清浮动本质:在浮动元素的上边或者下边添加足够的空间
JDBC
作用:由Java语言编写,Java通过JDBC连接数据库,进行增删改查操作
连接数据库的步骤
1、首先使用连接到什么类型的数据库,使用什么类型的驱动
2、具体连接到哪个数据库
3、生成sql指令
4、根据sql指令生成对象
5、执行sql对象,得到结果集
6、使用while循环遍历结果集,得到数据库中表中具体的信息
连接数据库部分代码示例
public class UserDao {
//接收用户名密码
public User login(String username,String password) {
//加了双引号无提示
try {
//知道使用的是mysql的驱动
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
try {
//创建连接,知道连接哪台电脑的哪个数据库
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/user?characterEncoding=utf-8","root","root");
//生成sql语句
String sql = "select * from hhh";
//根据sql语句生成对象
PreparedStatement ps = connection.prepareStatement(sql);
//真正的执行sql语句,得到结果集
ResultSet rs = ps.executeQuery();
//通过rs.next()来判断结果集是否循环完了
while(rs.next()) {
//在循环中rs就是当前的这个结果
//我们可以通过rs.getString等方法来获取结果集中对应字段的值,都有getString(int 下标)和getString(String 字段名)两种方式供我们使用
String uName = rs.getString("name");
String pass = rs.getString("password");
int id = rs.getInt("uid");
System.out.println("取到的记录"+"id:"+id+"name:"+uName+"password:"+pass);
}
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
}