东软JavaWeb实训记-DAY4-Servlet+frame框架页面的实现+不带框架的完整项目结构

1.省市级联(略)

2.集成框架
frameset
rows 指明 垂直 分几块  rows="10%,*,10%"
  rows="200,*"
cols 指明 水平 分几块 cols="150,*"
frame  去关联 页面


<frameset rows="150,*" frameborder="no">
	<frame src="top.jsp">
	<frameset cols="200,*">
		<frame src="left.jsp" noresize="noresize" scrolling="no">
		<frame src="welcome.jsp" name="main">
	</frameset>
</frameset>



页面结构

教师维护
 添加教师
 查询教师
课程维护
 添加课程
 查询课程


3.图片展示的特效
a)同修改控件的marginLeft 实现控件移动


页面相关的
1.html常用的控件
a)每一个表单控件 必须提供 id 和name属性
如果该控件的值 不需要保存在数据库中 那么 name属性必须省略
提交数据的格式 
控件名=值
如果该控件的值必须存放在数据库中,那么 其name 属性的值 必须与
对应表中的列名相同
b)其他控件特别是 div 必须提供 id 属性的值
2.JavaScript:
a)数据校验
b)动态设置样式
掌握 
i)函数的创建
function 名()
{

}
创建一个函数类型的变量
var 名=function(){

};


ii)操作页面中的控件(element)
document.getElementById(id)  :获取指定id对应的一个控件
document.getElementsByName(name) :获取指定名称的所有控件
用户操作 复选框
document.getElementsByTagName(name):根据标签名称获取所有标签
iii)操作控件常用的属性:
表单控件特有
value 属性
非表单控件特有
innerHTML
共有
className
style.样式名 :把中划线去掉,后的第一个字母大写
css样式中
background-color:red;
javascript
style.backgroundColor="red";
iv)数据校验 使用正则表达式验证
a)及时验证
b)提交表单验证
3.css样式表:
样式的属性
a)选择器
b)选择器的组合
选择器 选择器{

}
选择器,选择器{

}
选择器>选择器{

}
选择器[属性='值']{

}

====================================
1.Servlet是所有web框架的核心(struts,spring mvc,jfinal,jsf)
a)作用:
i)获取客户端请求的数据
ii)能在servlet中创建java类的对象 并调用其方法获取返回值
iii)能够跳转到需要的页面
b)记住结构
1)处理中文 处理以post方式提交的请求
		request.setCharacterEncoding("UTF-8");
2)获取客户提交的数据
		//String value=request.getParameter("");
		//把控件名和值组装为一个 Map 集合
		Map<String,String[]> params=request.getParamterMap();
		//自己编码把 数组的map转换为String map即可
		Map<String,String> map=ConverteUtil.convertMap(params);
3)创建java 类的对象 并调用方法获取其返回值
		StuInfoService service=new StuInfoService();
		boolean flag=service.doSave(map);
4)获取Session 把一些数据传递给jsp页面
		HttpSession session=request.getSession();
		session.setAttribute("key",value);
5)页面跳转
		response.sendRedirect("error.jsp");


c)servlet 概念:
一个运行在服务器端,用于处理用户请求并响应的java类
CGI
不管有多少请求,大家使用的是同一个servlet对象
避免使用全局变量

d)servlet的结构


@WebServlet("/IndexServlet")
public class IndexServlet extends HttpServlet{
	
	public void doGet(){
	
	}
	
	public void doPost(){
		
	}
}


e)记住serlvet的访问配置:
在servlet 的类上面 添加 
@WebServlet("/url")


f)servlet的命名:
页面名功能名Servlet
reg.jsp ----   RegServlet

showTeas.jsp 
删除 ----TeasDeleteServlet
修改操作 ----TeasEditServlet


maven
Servlet1
Servlet2
MyBatis jdbc 

完整项目:



package com.neu.dao;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

public class GenerateSQLDao {

	private String tableName;
	public GenerateSQLDao(String tableName){
		this.tableName=tableName;
	}
	
	public final int insert(Map<String,String> map){
		int row=0;
		String sql="insert into "+tableName+"(";
		String cols="";
		String values="";
		List<String> param=new ArrayList<String>();
		if(map==null){
			throw new RuntimeException("插入数据有误");
		}
		for(Map.Entry<String, String> entry:map.entrySet()){
			cols+=","+entry.getKey();
			values+=",?";
			param.add(entry.getValue());
		}
		sql+=cols.substring(1)+") values(";
		sql+=values.substring(1)+")";
		System.out.println(sql);
		//操作数据
		return row;
	}
}

package com.neu.dao;


public class TeaInfoDao extends GenerateSQLDao{

	public TeaInfoDao() {
		super("tea_info");
	}

	
}


package com.neu.service;


import java.util.Map;


import com.neu.dao.TeaInfoDao;
import com.neu.util.ConvertUtil;


public class TeaInfoService {
	private TeaInfoDao teaInfoDao;
	public TeaInfoService(){
		this.teaInfoDao=new TeaInfoDao();
	}
	public boolean doReg(Map<String, String[]> params){
		boolean flag=false;
		Map<String,String> map=ConvertUtil.converterMap(params);
		try {
			int row=teaInfoDao.insert(map);
			if(row>0){
				flag=true;
			}
		} catch (Exception e) {
			//记录日志 log4j
		}
		return flag;
	}
}

package com.neu.servlet;

import java.io.IOException;
import java.util.Map;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.neu.service.TeaInfoService;

/**
 * RegServlet
 */
@WebServlet("/RegServlet")
public class RegServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public RegServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		this.doPost(request, response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("UTF-8");
//		
		Map<String, String[]> params=
				request.getParameterMap();
		TeaInfoService service=new TeaInfoService();
		boolean flag=service.doReg(params);
		if(flag){
			response.sendRedirect("success.jsp");
		}else{
			response.sendRedirect("error.jsp");
		}
	}

}

package com.neu.util;


import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;


public class ConvertUtil {


	public static Map<String, String> converterMap(Map<String,String[]> params){
		Map<String, String> map=null;
		if(null != params && params.size()>0){
			map=new HashMap<String, String>();
			for(Map.Entry<String,String[]> entry:params.entrySet()){
				String key=entry.getKey();
				String[] values=entry.getValue();
				String value="";
				if(null != values && values.length>0){
//					String temp=Arrays.toString(values);//
//					temp=temp.replace("[", "").replace("]", "")
//							.replace(" ", "");
					for(String str:values){
						value+=","+str;
					}
					value=value.substring(1);
				}
				map.put(key, value);
			}
			
		}
		return map;
	}
}

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="RegServlet" method="post">
	用户名:<input type="text" name="u_name" id="u_name"><br>
	密码:<input type="password" name="u_pwd" id="u_pwd"><br>
	爱好:<input type="checkbox" name="u_like" value="游泳">游泳
	<input type="checkbox" name="u_like" value="篮球">篮球
	<input type="checkbox" name="u_like" value="健身">健身
	<input type="checkbox" name="u_like" value="广场舞">广场舞<br>
	电话:<input type="text" name="u_tel"><br>
	<button type="submit">提交</button>
</form>
</body>
</html>


猜你喜欢

转载自blog.csdn.net/muyao987/article/details/75670345