Java Web开发过程中常遇的小问题
来源:互联网 发布:淘宝客链接转化api 编辑:程序博客网 时间:2024/06/11 04:16
问题1:各种中文乱码问题
网页显示的中文乱码问题:
设置pageEncoding为gb2312即可(写在jsp页面的最前边)
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
数据库中文乱码问题:
对数据库的编码可以进行直接的设置,直接设置为gb2312或者utf-8即可。
这个由于不同的数据库不同的可视化界面操作可能不同,在此不赘述,可自行百度适合自己数据库的相关方法,建议是如果数据库的表不是很复杂可以新建一下,在建的时候直接选择即可。
getParameter时显示中文乱码问题(即用户输入中文到input中,你在后台getParameter时get到的中文会出现乱码)
解决方法:
在String XXX = request.getParameter("XXX");这句的前边写:
request.setCharacterEncoding("gb2312");
response.setCharacterEncoding("gb2312");//通知服务器发送数据时查阅的码表
response.setContentType("text/html;charset=gb2312");//通知浏览器以何种码表打开
直接进行粘贴应该就可以解决中文乱码问题
问题2:如何防止用户在不登录的情况下通过记住URL地址直接在地址栏输入URL地址进入本不能进入的页面
思路:在完成登录验证并验证成功之后,在重定向之前在session里存一个变量,记录一下用户的ID或者是用户名
String userid = request.getParameter("ID");session.putValue("userid",userid);
然后每一个必须登录才能进入的界面的开头部分,我们要验证一下session中的userid这个值有没有被设置过,如果设置过了就是我们用户的id那么就说明已经登录过了,可以显示这个页面,反之如果这个值是null证明没有设置过,证明用户没有进行登录操作,这样我们就不能让他进入
<%if (session.getValue("userid")==null){ %><script>alert("请先登陆!");window.close();document.location = 'http://localhost:8888/finalpro_bone/portfolio.html';</script><%}%>
问题3:Md5加密的函数
主要是用来登录时存用户的密码的,避免直接存密码导致不安全的问题
//开始生命md5加密 public String Md5(String plainText){try{MessageDigest md = MessageDigest.getInstance("MD5");md.update(plainText.getBytes());byte b[] = md.digest();int i;StringBuffer buf = new StringBuffer("");for (int offset = 0; offset < b.length; offset++) {i = b[offset];if(i<0) i+= 256;if(i<16) buf.append("0");buf.append(Integer.toHexString(i));}//System.out.println("result: " + buf.toString());//32位的加密System.out.println("result: " + buf.toString().substring(8,24));//16位的加密String str = buf.toString().substring(8,24);return str;}catch(NoSuchAlgorithmException e){// TODO Auto-generated catch blocke.printStackTrace(); return null;}} //结束声明MD5加密
使用的时候直接调用这个函数就行了,可以选择16位或者32位的md5加密密码
问题4:防止sql注入漏洞
思路:使用 PreparedStatement,不要使用拼接sql语句的方法,那样会出现sql注入漏洞
String sql = "select * from user where ID=? and password=?"; System.out.println(sql); if(!getid.equals("")){ System.out.println("用户名不是空"); }else{ %> <script type="text/javascript"> alert("用户ID不能为空!"); history.back(1); </script> <% } if(!getpassword.equals("")){ System.out.println("密码不是空"); }else{ %> <script type="text/javascript"> alert("用户密码不能为空!"); history.back(1); </script> <% } PreparedStatement prep= conn.prepareStatement(sql); prep.setString(1, getid); prep.setString(2, getpassword); ResultSet rs = prep.executeQuery();
- Java Web开发过程中常遇的小问题
- web开发中常遇到的乱码问题
- web前端开发中常遇到的问题
- 两个VS2008开发应用中常遇到的小问题
- Java web开发中常用到的jar包简介
- java开发中常用到小方法
- web开发过程中的小问题
- JAVA项目开发中常遇到的字符串替换问题
- java开发中常常遇到的内存溢出问题 OutOfMemory
- 开发中常遇到到的问题一:java.lang.NullPointerException
- 开发中常遇到到的问题二:java.lang.ArrayIndexOutOfBoundsException
- Java中常被问到的问题
- 在stm32开发过程中常遇到的C语言知识小概括
- Python:开发过程中常遇到的错误
- 工作中常遇到的小白问题
- 学习SEO过程中常遇见的问题
- java中常用到的一些小知识
- java WEB 开发过程中遇到的路径问题。
- IIS中添加对WCF服务的支持
- hdu1890 Robotic Sort(Splay)
- LayDate 时间选择插件的使用介绍
- Win7 32位MySQL5.6免安装配置编码为utf8——解决Java插入MySQL乱码问题
- MAVEN的安装详解
- Java Web开发过程中常遇的小问题
- 欢迎使用CSDN-markdown编辑器
- 计算机编程语言的学习过程推荐
- 1025. 反转链表 (25)
- Java中包装类的一些注意点
- 1026. 程序运行时间(15)
- Spring3.2.4 + Mybatis3.1.1环境搭建
- 牛顿法与拟牛顿法学习笔记(一)牛顿法
- mysql之光标cursor【整理】