本文共 2023 字,大约阅读时间需要 6 分钟。
4、JDBC编程六步(需要背会)
第一步:注册驱动(作用:告诉Java程序,即将要连接的是哪个品牌的数据库) 第二步:获取连接(表示JVM的进程和数据库进程之间的通道打开了,这属于进程之间的通信,重量级的,使用完之后一定要关闭通道。) 第三步:获取数据库操作对象(专门执行sql语句的对象) 第四步:执行SQL语句(DQL DML…) 第五步:处理查询结果集(只有当第四步执行的是select语句的时候,才有这第五步处理查询结果集。) 第六步:释放资源(使用完资源之后一定要关闭资源。Java和数据库属于进程间的通信,开启之后一定要关闭。)两者区别:
①getParameter()获取的是客户端设置的数据。 getAttribute()获取的是服务器设置的数据。 ②getParameter()永远返回字符串 getAttribute()返回值是任意类型既然parameter和attribute都是传递参数,为什么不直接使用parameter呢?
①服务器端不能通过setParameter(key, value)来添加参数,因为没有这个函数 所以如果需要在服务器端进行跳转,并需要想下个页面发送新的参数时,则没法实现。但是Attribute可以,可以通过setAttribute(),将值放入到request对象,然后在其他页面使用getAttribute获取对应的值,这样就达到一次请求可以在多个页面共享一些对象信息 ②parameter返回值是字符串,意味着不能传递其他的对象,如Map,List,但是attribute则可以存放任意类型的Java对象request.getRequestDispatcher()是请求转发,前后页面共享一个request ;
response.sendRedirect()是重新定向,前后页面不是一个request。使用泛型可以不用进行类型转换 T
一般在实际项目开发中,都是使用继承 HttpServlet 类的方式去实现 Servlet 程序。
1、编写一个类去继承 HttpServlet 类 2、根据业务需要重写 doGet 或 doPost 方法 3、到 web.xml 中的配置 Servlet 程序的访问地址重写init方法里面一定要调用父类的init操作。
/ 斜杠 如果被浏览器解析,得到的地址是:http://ip:port/
/ 斜杠 如果被服务器解析,得到的地址是:http://ip:port/工程路径字符集设置要在读取之前(跑掉一个也不行)。
解决get 请求的中文乱码问题
String username = req.getParameter(“username”); //1 先以 iso8859-1 进行编码 //2 再以 utf-8 进行解码 username = new String(username.getBytes(“iso-8859-1”), “UTF-8”);// 设置请求体的字符集为 UTF-8,从而解决 post 请求的中文乱码问题
req.setCharacterEncoding(“UTF-8”);//解决响应中文乱码
resp.setContentType(“text/html; charset=UTF-8”);URLEncoder 解决 IE 和谷歌浏览器的 附件中 文名问题。 如果客户端浏览器是 IE 浏览器 或者 是谷歌浏览器。
我们需要使用 URLEncoder 类先对中文名进行 UTF-8 的编码 操作。 因为 IE 浏览器和谷歌浏览器收到含有编码后的字符串后会以 UTF-8 字符集进行解码显示。 // 把中文名进行 UTF-8 编码操作。 String str = “attachment; fileName=” + URLEncoder.encode(“中文.jpg”, “UTF-8”); // 然后把编码后的字符串设置到响应头中 response.setHeader(“Content-Disposition”, str);statement适合执行静态sql PreparedStatement适合执行动态sql
字节流 getOutputStream(); 常用于下载(传递二进制数据)
字符流 getWriter(); 常用于回传字符串(常用) 两个流同时只能使用一个。 使用了字节流,就不能再使用字符流,反之亦然,否则就会报错转发和重定向的区别
转发只能在项目内部进行 而重定向还可以跳转到项目外部页面。 转发是一次请求,重定向是两次请求。 转发地址栏的请求路径不会变,而重定向地址栏会变。session和cookie的区别
有什么作用 记录用户状态(数据) session 将数据绑定在服务端,由session绑定的数据,可以实现数据共享 cookie 将数据保存在客户端(浏览器)转载地址:http://syozi.baihongyu.com/