三层框架
一:关于设置编码
1.请求中文的处理:
get:
String code=new String(request.getParameter("code").getBytes("ISO8859-1"),"UTF-8");
get方法,用response.setContentType是没用的,得把字符取出来,一个一个重新编码,
post:
request.setCharacterEncoding("UTF-8");
2.响应中的中文处理:
response.setContentType(“text/html;charset=UTF-8”);
2.1.重定向与?传参
response.sendRedirect("index2.jsp?act="+act+"&pwd="+pwd);
3.注
response.setCharacterEncoding("gb2312")与你的getXXX有关,
response.setContentType("text/html;charset=gb2312")与显示页面有关。
二.ajax页面,两个包commons-lang3-3.3.2.jar;standard.jar,有什么classnotfound应该就是这两个jar包
借鉴自:https://blog.csdn.net/weixin_43167549/article/details/89409302
这位博主用的是servlet3新特性,现在还是web.xml
1.先补一个内嵌式的CSS
实现应用程序全屏,row123为了防bootsrap的行,会与身体冲突出现白边
<style>
html,body {
width:100%;
身高:100%
保证金:0px;
填充:0px;
}
body {
font-family:“华文细黑”;
背景:url(imgs / 2.jpg)无重复中心;
背景尺寸:悬停;
背景附件:固定;
}
.row123 {
display:-webkit-box;
display:-webkit-flex;
显示:-ms-flexbox;
显示:flex;
-webkit-flex-wrap:wrap;
-ms-flex-wrap:wrap;
flex-wrap:wrap;
}
</样式>
2.效果图
看到了这个方法,应该也没问题
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>点击出现图片,再次点击循环出现</title>
</head>
<body>
<script type="text/javascript" defer="defer">
var img=document.getElementById('img');
var counts=0;
function onButton() {
counts++;
if (counts%2== 0) {
document.getElementById("img").style = "display:none";
} else {
document.getElementById("img").style = "display:block";
}
}
function showClick() {
alert(counts);
}
</script>
<input type="button" value="请单击" onclick="onButton()" style="width: 100px; height: 20px;color: blue; background-color: chartreuse" >
<input type="button" value="显示单击次数" onclick="showClick()" style="width: 100px; height: 20px;color: blue; background-color: chartreuse" >
<div id="img" style="display:none"><img src="http://tools.jb51.net/static/api/pintu/images/4/main.jpg"></div>
</body>
</html>
下载链接:https://download.csdn.net/my
3.前端索引功能页的HTML代码
补充jQuery的语法
的jquery的语法,给ID为名称的DOM标签赋值为空;相当于基本语法的的innerHTML = “”;
例子:<div id = name> <p>你好!</ p> </ div>
$( “#名字”)的html( “”)。之后
<div id = name> </ div>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<link href="css/style1.css" type="text/css" rel="stylesheet" />
<link href="css/bootstrap.min.css" rel="stylesheet">
<link href="css/style.css" rel="stylesheet">
</head>
<style>
html, body {
width: 100%;
height: 100% margin: 0px;
padding: 0px;
}
body {
font-family: "华文细黑";
background: url(imgs/2.jpg) no-repeat center center;
background-size: hover;
background-attachment: fixed;
}
.row123 {
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-flex-wrap: wrap;
-ms-flex-wrap: wrap;
flex-wrap: wrap;
}
</style>
<body>
<script src="js/jquery.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<script src="js/scripts.js"></script>
<!--1.头部模块-->
<div class="trunk2">
<div class="t21">
<br />
<div class="zt2"> 好好感受</div>
<p> 雪花绽放的气候</p>
</div>
<div class="t22">
<br /> <br /> <br /> <br /> <img class="rounded-circle"
style="width:60%;height:45%;float:right;" src="imgs/1.jpg">
</div>
</div>
<div class="fenleik" id="temperature"><!-- 通过与js动态绑定,并控制在该div中显示温度值 -->
<div class="py-2 button"></div>
</div>
<br />
<br />
<br />
<div class="fenleit">
<div class="col-md-12">
<div class="progress" style="height:80px;width:100%">
<div style="height:80px;width:90%"
class="progress-bar w-75 progress-bar-striped progress-bar-animated">
</div>
</div>
</div>
</div>
<br />
<br />
<br />
<br />
<br />
<div class="box">
<div class="row123">
<div class="col-md-1 "></div>
<div class="col-md-4" style="height:200px;">
<button id="up" style="height:200px;font-size:40px"
class="btn active btn-block btn-success" type="button">升高
</button>
</div>
<div class="col-md-2 "></div>
<div class="col-md-4">
<button id="down" style="height:200px;font-size:40px"
class="btn btn-block btn-primary" type="button">降低</button>
</div>
<div class="col-md-1 "></div>
</div>
</div>
<!--content-->
<div id="content"></div>
<!--3.bottom-->
<script type="application/x-javascript">
var count = 24;
$("#temperature").html(count);/* 赋值初值 */
</script>
<script type="application/x-javascript">
$(function() {
$("#up").bind("click", function() { /* click动态绑定id js */
var count = $("#temperature").html() - 0 + 1;
$("#temperature").html(count);
});
$("#down").bind("click", function() { /* click动态绑定id js */
var count = $("#temperature").html() - 0 - 1;
$("#temperature").html(count);
});
});
</script>
</body>
</html>
4.MVC
三层思想:话说学校老师说的三层框架应该就是MVC思想,讲的不是很明白,当时还饶了个大圈
L:模型,放一些类方法
五:视图层,HTML,JSP
C:控制层,个人新手现在通过的servlet和web.xml中联结前后端
4.1工具类道包DAO类先放连数据库
package com.ywjh.Dao;
import java.sql.Connection;
import java.sql.DriverManager;
public class Dao {
public Connection getConnection() {
Connection conn = null;
try {
// 1.建立数据库的连接
Class.forName("com.mysql.jdbc.Driver");// 加载驱动
String url = "jdbc:mysql://106.14.224.26/recook";
String root = "root";
String pwd = "12345";
conn = DriverManager.getConnection(url, root, pwd);
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}
}
4.2 Dao包其他方法可以封装实体类的调用方法,实体类在Model中定义
package com.ywjh.Dao;
import java.security.interfaces.RSAKey;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.ywjh.Model.Admin;
public class AdminDao extends Dao {
public boolean checkPassword(Admin admin) {
boolean result = false;
String sql = "select * from admin where username=? and password =?";
try (Connection conn = getConnection();
PreparedStatement pre = conn.prepareStatement(sql);) {
pre.setString(1, admin.getUsername());
pre.setString(2, admin.getPassword());
ResultSet rs = pre.executeQuery();
if (rs.next())
result = true;
} catch (Exception e) {
e.printStackTrace();
} finally {
return result;
}
}
public boolean insert(Admin admin) {
boolean result = false;
boolean rs =false;
String sql = "insert into admin(username,password,phonecall) values(?,?,?)";
try (Connection conn = getConnection(); PreparedStatement pre = conn.prepareStatement(sql);
) {
pre.setString(1, admin.getUsername());
pre.setString(2, admin.getPassword());
pre.setString(3, admin.getPhonecall());
rs = pre.execute();
} catch (Exception e) {
e.printStackTrace();
} finally {
return rs;
}
}
//1.boolean add(Admin admin)
/*2.delete(int,String, Admin)
* 3. updata(Admin)
* 4. Arraylist<Model> searchAll()
* Arrarlist<Admin> sal=new Arrarlist();
*
* for (rs.next()){
* Admin tempAdin=new Admin();
*
*
* ad.setU()
* ad.setp()
* sal.add(tempAdmin);
*
*
* }.
* return
result = true;
5.searchone(int string ,Admin )
*
*
*
*
* */
}