(finish)遇到的问题

461 阅读2分钟

1.点击form 表单中的button导致页面刷新问题

在form表单里的button,不给button添加type属性,点击按钮,button的类型会默认为submit,会默认提交表单并刷新页面。将inp将input或者button的type属性改为button,点击按钮页面就不会自动重新加载了。

2.MySQL中如何使用布尔类型

布尔类型等价于TINYINT(1)。因此创建表时定义的bool和Boolean类型,数据库中真实存储的是TINYINT(1)

3.侧边栏固定宽度,内容栏自适应

<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   <title>Document</title>
   <style>
      body{
         margin: 0;
         padding: 0;
      }
      ul {
            margin: 0;
            padding: 0;
            width: 50px;
            background-color: rgb(52, 73, 94);
            position: absolute;
            height: 100%;
        }
      #content{
         margin-left: 60px;
      }
   </style>
</head>
<body>
   <ul>
      
   </ul>
   <div id="content">
      <div style="padding: 20px;">
         <div style="background-color: red; width: 100%;height: 20px;">
         </div>
      </div>

      <div style="background-color:greenyellow; width: 90%; height: 200px; margin: 0 auto;">
         正文
      </div>
   </div>
</body>
</html>

4.判断radio是否选中的两种方法

<input type="radio"  value="#00CC00" name="device">
 
js写法
let inputs = document.getElementsByName("device");
for (var i = 0; i < inputs .length; i++) {
if (inputs [i].checked) {
//XXXX
}
jquery写法:
var val=$('input:radio[name="device"]:checked').val();
if(val){
//XXXX
}

5.javascript与jsp发送请求到servlet的几种方式

// url提交
function submitForm1(){

	window.location.href="TestServlet?param=hrefMethod";
}

//  post提交
function submitForm5() {
	
	var myForm=document.createElement("form")
	var params={"param":"zs","param2":"li"};
	myForm.method = "post";
	myForm.action = "TestServlet";
	myForm.style.display = "none";
	for ( var k in params) {
		var myInput = document.createElement("input");
		myInput.name= k;
		myInput.value= params[k];
		myForm.appendChild(myInput);
	}
	document.body.appendChild(myForm);
	myForm.submit();
	//document.body.removeChild(myForm);
	return myForm;
}

// ajax 提交

6.JSP内置对象之request获得所有的参数名称

<%@ page import="java.util.*" %>

<%
	request.setCharacterEncoding("utf-8");
	Enumeration<String> e = request.getParameterNames();//获得所有的参数名称
     while(e.hasMoreElements()){  //遍历Enumeration
	      String str = (String)e.nextElement(); //取出下一个元素值
	      out.println(str+":"+request.getParameter(str)+"<br>");//打印输出变量名称
	    }
	%>

7.equals 使用时的注意事项

不建议使用str.equals("hehe"),因为如果str是null,会报错

8.jdbc获取自增主键

String sql = "insert into account(username,name,age) values(?,?,?)";
 
PreparedStatement preparedStatement = con.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS);

//start widh 1
preparedStatement.setString(1,"6");
preparedStatement.setString(2,"6");
preparedStatement.setString(3,"6");


preparedStatement.executeUpdate();
ResultSet rs = preparedStatement.getGeneratedKeys();
rs.next();
int id = rs.getInt(1);

9.jdbc连接 要关闭资源

if(rs!=null)rs.close();
if(stm!=null)stm.close();
if(conn!=null)conn.close();

10.servlet获取到jdbc的数据传输到html的办法

  • java创建json的字符串,直接传输的js的json,然后构造网页
  • jstl,el表达式等等

11.js中获取jsp里的对象

var songlist=<%=uslist%>;

12.gson构造json

JsonArray listArray = new JsonArray();
for(int i=0;i<3;i++) {
    JsonObject obj = new JsonObject();
    obj.addProperty("id", i);
    obj.addProperty("name", "你好"+i);
    listArray.add(obj);
}
System.out.println(listArray);


[{"id":0,"name":"你好0"},{"id":1,"name":"你好1"},{"id":2,"name":"你好2"}]

13.map里面存放List

Map <Integer,List<Qussion>>map1 = new HashMap<>();
		
if(map1.containsKey(1)==false) {   // 不存在 则建立
	
	map1.put(1, new ArrayList<>());// 添加键值对
	
	map1.get(1).add(new Qussion(11, "11", "11", "11", "11", true));
	map1.get(1).add(new Qussion(12, "12", "12", "12", "12", true));
}

14.tomcat server location

  • Use workspace metadata(dose not modify Tomcat installation) 使用workspace的工作空间,不影响本地Tomcat安装配置

  • Use Tomcat installation (takes control of Tomcat installation) 使用和控制本地安装的Tomcat

  • Use custom location (dose not modify Tomcat installation) 使用自定义的目录,不影响本地Tomcat安装配置

15.tomcat莫名使用不了

删除了gson jar包,但是相关代码还没删除

16.java的json字符串传入js,会自动转化为object?

why

17.JSON与JS对象的区别与对比

JSON是JS的一种简单数据格式,JSON是JavaScript原生格式,它是一种严格的js对象的格式,JSON的属性名必须有双引号,如果值是字符串,也必须是双引号

var obj2={};//这只是JS对象
var obj3={width:100,height:200};/*这跟JSON就更不沾边了,只是JS的 对象 */
var obj4={'width':100,'height':200};/*这跟JSON就更不沾边了,只是JS的对象 */
var obj5={"width":100,"height":200,"name":"rose"}; /*我们可以把这个称做:JSON格式的JavaScript对象 */
var str1='{"width":100,"height":200,"name":"rose"}';/*我们可以把这个称做:JSON格式的字符串 */

18.JS和JSP之间值传递

1.JS使用JSP中的变量

<SCRIPT LANGUAGE = "JavaScript" >
    var tmp = "<%=test %>"; // 通过 "<%=javaCode %>" 引用jsp中的变量、方法等,注意:一定要加双引号
    alert(tmp);
</SCRIPT >

2.JSP使用JS中的变量

  • 由于JSP代码在服务器运行,无法直接使用客户端的JS代码中的变量。需先把客户端的变量提交到服务器,服务器再接收该变量。
构建一个hidden form表单->提交
function submit(){
        var frm = document.getElementById("frmAppId"); // 获取表单
        frm.submit(); // 对表单进行提交
    }

19.EL表达式使用时要注意的地方

  • EL只能访问page,request,session,application的对象
  • 可以和js使用
<%
	List<String>list = new ArrayList<String>();
	list.add("bba");
	list.add("fsd");
	list.add("你1");
	request.setAttribute("list1", list);
	request.setAttribute("name", "你哈");
%>
// 要使用""
<script type="text/javascript">
	var t1 = "${list1}";
	var t2 = "${name}";
	console.log(t);
</script>
  • .(点)和中括号的区别
// key不存在,报错
点语法:${applicationScope.key}
键语法:${applicationScope["key"]}

// key不存在,不报错
推荐用法:${applicationScope[key]}

20.html固定高度为100%,多余部分滑动


div 
{
  height:150px;
  overflow: scroll;
}

21.滚动条宽度

//滚动条高宽及背景 高宽分别对应横竖滚动条的尺寸

::-webkit-scrollbar{ width: 8px;height: 8px;background-color: #25498C;

22.让两个div横向排列

<div>
    <div style="width:30%; float:right; background-color: red;">阅读次数:9999</div>
    <div style="width:70%; float:right; background-color: greenyellow;">发表日期:2009-09-10</div>
</div>

23.头尾固定中间高度自适应布局

<!DOCTYPE HTML>
<html>

<head>
    <meta charset="utf-8">
    <title>头尾固定中间高度自适应布局</title>
    <style>
        html,
        body {
            height: 100%;
            margin: 0;
            padding: 0;
        }
        #dHead {
            height: 100px;
            background: #690;
            width: 100%;
        }
    </style>
</head>

<body>
    <div style="height: 100%;">
        <div id="dHead">固定头部100px;</div>
        <div id="dBody1" style="
        background-color: skyblue;
        overflow: scroll;position: absolute;
            width: 30%;
            top: 100px;
            bottom: 0px;">
            <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p>
        </div>
        <div id="dBody2" style="background-color: red;
        overflow: scroll; position: absolute;
        width: 68%;
        top: 100px;
        right: 0px;
        bottom: 0px;">
            <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p>
        </div>
    </div>

</body>

</html>

24.js格式化字符串

function StringFormat() {
            if (arguments.length == 0)
                return null;
            var str = arguments[0];
            for (var i = 1; i < arguments.length; i++) {
                var re = new RegExp('\\{' + (i - 1) + '\\}', 'gm');
                str = str.replace(re, arguments[i]);
            }
            return str;
        }

使用:var str=StringFormat("abc{0}def","123");

25.js读取本地json文件

  • 导入axios
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../js/axios.min.js"></script>
</head>
<body>
    <script>
        axios.get("stu_data.json")
                .then(function (response) {
                    console.log(response.data[1])
                })
                .catch(function (error) {
                    console.log(error);
                });
    </script>
</body>
</html>

26.jsp路径问题

请求转发和重定向的路径是不一样的 response.sendRedirect("/threeceng_demo/Home/add.jsp"); request.getRequestDispatcher("/Home/login.jsp").forward(request, response);

1.teacher/teacher_question_add.jsp跳转到nchu.exam.servlet/teacher_question_servlet.java 使用:forms.action = "/Examtest/teacher_question_servlet";

2.请求转发后(转发后的页面路径出现问题)是相对路径出现问题

3.<img src="/Examtest/exam.png" alt="exam" width="60" height="60">

1、重定向的 / 表示:http://服务器ip:端口/

2、请求转发的 / 表示:http://服务器ip:端口/项目名

怎么记忆呢,很简单,重定向是浏览器发来的,只知道发到某个服务器,但是不知道发到服务器的哪个project,所以需要自己用代码声明; 而请求转发是服务器某个project内部的转发,转来转去都是在某个project内部,所以不需要手动声明项目名。