JavaWeb开发注意事项

1、使用EL表达式时,取的如果是Bean对象,想要用它get方法,是使用如下方式。

  • ${user.username}

2、Filter默认的拦截方式(dispatcherTypes)是REQUEST,所以内部的forword转发不会拦截。

3、怎么做一个可以跳转链接的按钮?

  • <input type="button" onclick="window.location.href='/register.jsp'" value="注册">

4、怎么删除session中的属性?

  • 清除某一个session:request.getSession().removeAttribute("employee");
  • 清除所有session(让session失效):request.getSession().removeAttribute("employee");

5、怎么删除Cookie?

  • 删除某一个Cookie:
Cookie newCookie=new Cookie(“username”,null); //假如要删bai除名称为username的Cookie
newCookie.setMaxAge(0); //立即删除型
newCookie.setPath(“/”); //项目所有目录均有效,这句很关键,否则不敢保证删除
response.addCookie(newCookie); //重新写入,将覆盖之前的
  • 删除全部Cookie:
Cookie[] cookies=request.getCookies();
for(Cookie cookie: cookies){
	cookie.setMaxAge(0);
	cookie.setPath(“/”);
	response.addCookie(cookie);
}

6、Cookie的setMaxAge(秒数)方法有什么讲究?

  • 如果参数大于0,表示关闭浏览器后可以保存多久。
  • 如果参数小于0,表述关闭浏览器后Cookie立即失效,即当前会话有效(和不设置一样的效果)
  • 如果参数等于0,表示立即删除掉Cookie,浏览器不会去保存。

7、后端怎么获取前端textarea文本域的内容?

  • 在textarea中定义好name属性,然后后端用req.getParameter("name名");接收,一定是要用form表单提交,如果是用单纯的textarea文本域标签加一个button按钮来跳转的话是获取不到的,虽然点击button也会跳转,但是不会携带值跳转。

8、WEB项目中如何加载文件?
在Java项目中:

  • 方式1:FileInputStream fis = new FileInputStream("src\\文件名");

在这里插入图片描述

  • 方式2:类名.class.getClassLoader().getResourceAsStream("文件名")(注意:这种方式获得的是InputStream字节流)

在WEB项目中

  • 方式1:
//第一步:获取servletContext 
ServletContext servletContext = config.getServletContext();
//第二步:获取真实路径
String realPath = servletContext.getRealPath("/WEB-INF/classes/文件名");
//第三步:路径传入流
BufferedReader br = new BufferedReader(new FileReader("hh"));
  • 方式2:与在Java项目中的方式2一样,都是用类加载器的方式。

Tips:BufferedReader默认读取的是GBK格式文件,所以如果读的UTF-8文件且文件中有中文的话会乱码。

9、HTML中自定义属性怎么搞?
有两种方式选择,第一种是使用【data-名称】来实现自定义属性,这种方式在浏览器查看源代码时在标签上是看不到属性的;第二种就是直接使用【名称】来实现。
方式一:直接在HTML标签中使用data-名称来进行定义即可
eg:<span data-age="22">hello</span>
<span age="22">hello</span>

Tips:!!!【data-名称】这种方式的自定义属性,在使用js取值时,一定要把名称小写,不然取不到值。

方式二:使用JavaScript进行设置自定义属性

/**
* 1. 原生JavaScript操作
*/
var obj = document.getElementById("hello");
//方式1:
obj.setAttribute("age","123456");
//方式2:
obj.attributes["age"].nodeValue = "123456";

Tips:
JavaScript设置的自定义属性,用户查看源码在标签上也是看不到的

方式三:使用JQuery进行设置自定义属性

$(function () {
     /**
      * 方法一:attr()
      */
     // 设置值
     $("#hello").attr("info","你好");
     // 设置多个值
     $("#hello").attr({ name: "Tom", age: "22" });
     /**
      * 方法二:data()
      */
     $("#hello").data("hope", "年薪100k");
 })

Tips: 两种方法在标签上都是看不到属性的。

10、MySQl查询语句加上 or null 的作用?

  • 在mysql内部中true、false是用1、0表示的,只要不是null,count都会统计出来,而exp or null就会在exp为false时就返回null,count就不会统计了如这样一条语句select count(name='tom') from student;如果name不叫tom也是会计算条数的,在name后面加上 or null ,就只会统计出叫tom的人。

11、JS中怎么获取URL或者URI地址?

  • 获取URI:var uri = location.search;
  • 获取URL:var url = location.href;

12、JS中获取的地址参数报错怎么办?
-用decodeURI解码 uri = decodeURI(uri);

encodeURI是进行手动编码
decodeURI是进行手动解码

13、Jquery获取select标签的选中的值直接可以用$("input:eq(index)")来获取。

14、使用jQuery的表单提交事件submit(function(){return false})时,不能忘了return,否则程序虽不会报错,但是会出问题。

15、想要按钮自动点击,可以直接用jQuery的click()方法。

16、为PreparedStatement中预定义的SQL语句赋值时,如果值是字符串类型,直接赋值就行,不用赋值时前后添加引号,否则查询不出来结果。

例如:SQL语句为 "SELECT * FROM express where number = ?"
赋值时错误的写法: preState.setString(1,"'"+number+"'");
正确的写法:preState.setString(1,number);
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值