Day57
1.初识Javaweb
1.1 什么是web开发
Internet上供外界访问的Web资源分为:
1.2 Web容器_Tomcat
1.3 JavaWeb应用程序
1.4 Web应用的组成结构
2.编写一个web项目
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<!-- 导入css代码-->
<link rel="stylesheet" type="text/css" href="css/imgstyle.css">
</head>
<body>
<H1>欢迎页面</H1>
<img src="img/a.jfif">
</body>
</html>
img{
width:100px;
height: 100px;
border-radius: 50%;
}
运行结果:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<welcome-file-list>
<welcome-file>Weclome.html</welcome-file>
</welcome-file-list>
</web-app>
3.Servlet 上
3.1 什么是Servlet
3.2 Servlet的实现类
3.3 案例:编写注册页面
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<!-- 导入css代码-->
<link rel="stylesheet" type="text/css" href="css/imgstyle.css">
</head>
<body>
<H1>欢迎页面</H1>
<img src="img/a.jfif"> <br/>
<a href="login.html">登录</a>
<a href="register.html">注册</a>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>注册页面</title>
</head>
<body>
<h1>注册页面</h1>
<form action="#" method="post">
账号:<input type="text" name="username"/> <br/>
密码:<input type="text" name="password"/> <br/>
昵称:<input type="text" name="nickName"/> <br/>
年龄:<input type="text" name="age"/> <br/>
性别:
<input type="radio" name="sex" value="man" checked="checked">男
<input type="radio" name="sex" value="woman" >女
<br/>
爱好:
<input type="checkbox" name="hobbies" value="football">足球
<input type="checkbox" name="hobbies" value="basketball">篮球
<input type="checkbox" name="hobbies" value="shop">购物
<br/>
<input type="submit" value="注册"><br>
<input type="button" value="返回" onclick="goWeclome()"/>
</form>
<script type="text/javascript">
function goWeclome(){
window.location="Welcome.html";
}
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>登录页面</h1>
</body>
</html>
public class RegisterServlet extends HttpServlet {
/**
* 客户端发送请求给该Servlet,就会触发service()
* @param req 请求对象
* @param resp 响应对象
*/
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("好好学习");
}
}
<servlet>
<servlet-name>RegisterServlet</servlet-name>
<servlet-class>com.qf.Servlet.RegisterServlet</servlet-class> <!-- 全限类名 -->
</servlet>
<servlet-mapping>
<servlet-name>RegisterServlet</servlet-name>
<url-pattern>/register</url-pattern> <!-- 要加上/,前端不加/ -->
</servlet-mapping>
public class RegisterServlet extends HttpServlet {
/**
* 客户端发送请求给该Servlet,就会触发service()
* @param req 请求对象
* @param resp 响应对象
*/
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//设置编码格式
req.setCharacterEncoding("UTF-8");//设置请求编码格式
// //获取请求中的数据 -- 方式一
// String name = req.getParameter("username");
// String password = req.getParameter("password");
// String nickName = req.getParameter("nickName");
// String sex = req.getParameter("sex");
// String age = req.getParameter("age");
// String[] hobbies = req.getParameterValues("hobbies");
//
// System.out.println(name);
// System.out.println(password);
// System.out.println(nickName);
// System.out.println(sex);
// System.out.println(age);
// System.out.println(Arrays.toString(hobbies));
//获取请求中的数据 -- 方式二 用这个
Map<String, String[]> parameterMap = req.getParameterMap();//获取映射对象
Set<Map.Entry<String, String[]>> entries = parameterMap.entrySet();
for (Map.Entry<String, String[]> entry:entries){
System.out.println(entry.getKey()+"--"+Arrays.toString(entry.getValue()));
}
}
}
package com.qf.pojo;
public class User {
private String username;
private String password;
private String nickName;
private String sex;
private int age;
private String hobbies;
//无参构造,有参构造,get,set,toString方法省略
}
public class RegisterServlet extends HttpServlet {
/**
* 客户端发送请求给该Servlet,就会触发service()
* @param req 请求对象
* @param resp 响应对象
*/
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//设置编码格式
req.setCharacterEncoding("UTF-8");//设置请求编码格式
resp.setContentType("text/html;charset=UTF-8");//设置响应编码格式
//获取请求中的数据 -- 方式一
String username = req.getParameter("username");
String password = req.getParameter("password");
String nickName = req.getParameter("nickName");
String sex = req.getParameter("sex");
String age = req.getParameter("age");
String[] hobbies = req.getParameterValues("hobbies");
try {
User user = DBUtil.commonQueryObj(User.class, "select * from user where name=?", username); //获取提交查询对象
if (user==null){//允许注册
//hobbies是数组,拼接字符串
StringBuffer sb = new StringBuffer();
for (String hobby:hobbies){
if(sb.length() != 0){
sb.append(",");
}
sb.append(hobby);
}
//注册成功,将数据添加到数据库中
DBUtil.commonUpdate("insert into user(name,password,nickName,sex,age,hobbies) values(?,?,?,?,?,?)",username,password,nickName,sex,age,sb.toString());
resp.getWriter().println("<h1>注册成功<h1/>");
}else {//不允许注册
resp.getWriter().println("<h1>注册失败,账号已重复<h1/>");
}
} catch (SQLException e) {
throw new RuntimeException(e);
} catch (InstantiationException e) {
throw new RuntimeException(e);
} catch (IllegalAccessException e) {
throw new RuntimeException(e);
}
}
}