JSP笔记-21条

1 篇文章 0 订阅

最近在做web作业,结构功能比较简单,这边记录一下。

1.创建一个web工程包,包内的格式是这样的

Welcome

              ——Java Resources

                                               ——src

                                                       ——com.ssm.controller

                                                       ——com.ssm.dao

                                                       ——com.ssm.entity

                                                       ——com.ssm.intercept

                                                       ——com.ssm.service

                                                       ——com.ssm.serviceImpl

                                                       ——config

                                                       ——mappers

                                                       ——jdbc.properties[负责连接数据库的相关文件]

              ——WebContent

                                               ——common

                                                       ——css

                                                       ——fonts

                                                       ——js

                                                       ——img

                                                       ——layer

                                               ——META-INF

                                               ——WEB-INF

                                               ——.jsp/.html[我喜欢把文件放在这(^-^)]

2.需要安装好tomcat和jdk,这里就不多说了,不过要记得查看一下tomcat的设置

3.tomcat初始设定的开启时间很短,要自己手动更改延长它

4.后端LoginController控制器中注释可以配合前端的ajax使用,cue一下流程

后端

@Controller
public class LoginController{
	@Autowired
	public UserService userService;
	
	@ResponseBody
	@RequestMapping("Login.do")
	public String Login(String username, String password, HttpServletRequest request, HttpServletResponse respone,
			HttpSession session) throws IOException {
		return userService.findUser(username, password);
	}
}

前端

<script type="text/javascript">
function login(){
	$.ajax({
		type:"post",
		url:"Login.do",
		data:$("#myForm").serialize(),
		success:function(result){
			layer.msg(result),setTimeout(
    				function(){
    					if(result=="登陆成功!")
    						window.location="home.jsp";
    					else
    						window.location="Login.jsp";
    				},1000		
    			);	     
		}
	});
}
</script>

5.控制器用到的方法要在service中定义

public interface UserService {
	public String findUser(String username, String password);
}

6.控制器将会将参数运输到serviceImpl中,个人认为serviceImpl实现了service中定义(^-^)

@Service("UserService")
public class UserServiceImpl implements UserService{
	@Autowired
	private userDao userdao;
	
	@Override
	public String findUser(String username,String password) {
		Map<String,Object> map = new HashMap<String,Object>();
		map.put("username", username);
		map.put("password", password);
		Map<String,Object> map2 = userdao.findUser(map);
		System.out.println(map2);
		if(map2!=null) {
			return "登陆成功!";
		}else {
			return "用户名或密码错误!";
		}
	}
}

7.接下来需要通过Dao方法定义,然后在mapper中实现对数据库的操作

public interface userDao {
	String findUser(String username, String password);
}
<?xml version="1.0" encoding="UTF-8" ?>  
<!DOCTYPE mapper PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"      
 "http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">
<mapper namespace="com.ssm.dao.userDao">
	<select id="findUser" parameterType="map" resultType="map">
		select * from users where username=#{username} and password=#{password} and status!=-1;
	</select>
</mapper>

8.这里插播一条jdbc.properties,url带上characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull能有效避免中文乱码

driverClassName=com.mysql.jdbc.Driver

url=jdbc\:mysql\://localhost\:3306/abc?characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull

username=root
password=root

dataSource=org.springframework.jdbc.datasource.DriverManagerDataSource
acquireIncrement=3
idleConnectionTestPeriod=60
initialPoolSize=5
maxIdleTime=60
maxPoolSize=30
maxStatementsPerConnection=10
numHelperThreads=3

9.当导入其他人的工程时,需要注意Java Build Path这边有没有tomcat红叉叉报错

10.很多时候导入他人工程运行时报错,要么是代码中路径不同,要么是jar包不一样

11.jsp想要用el表达式,一定要带上这位小朋友

<%@ page isELIgnored="false" %>

12.还有一些奇奇怪怪,但是看起来在jsp中很固定的头

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt"  prefix="fmt" %>
<%@ page isELIgnored="false" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="zh">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <script src="./common/js/jquery-1.8.0.min.js"></script>
	<script src="./common/layer/layer.js"></script>
	<script src="./common/js/jquery.min.v3.js"></script>
	<script src="./common/js/jquery.circlechart.js"></script>

13.这个方法可以在<script>区快速跳转

function returnfunction() {
		window.location="Login.jsp";
}

14.在输入多个值的情况下,它可以取到<form>表单的输入值,但是同时还要搭配着后端使用

var username = $("#username").val();
public interface userDao {
	boolean changeInform(@Param("username")int username, @Param("sex")String sex,@Param("job")String job);
}

15.这一条跟很楼上很像,但是它取的是session值

${username}

16.button的onclick一定不要漏了个c,并且人家是有引号的

<button id="login_1" type="button" value="登陆" onclick="login()">登陆</button>

17.关于css,id是唯一,class不唯一,两者前面都要带点,如果只是标签页就不用带点

button{
    font-size:14px;
}
.login_1{
    color:#fff;
}

18.除了之前搭配mapper进行数据库存取,还有一种很土但是很好用的方式进行数据库操作

public boolean setQusetion(int queserid, String content,String title) {
		Connection con;
        String driver = "com.mysql.jdbc.Driver";
        String url = "jdbc:mysql://localhost:3306/abc?characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull";
        String user = "root";
        String userpassword = "root";
        boolean arestult = false;
        try {
            Class.forName(driver);
            con = (Connection) DriverManager.getConnection(url,user,userpassword);
            if(!con.isClosed()) {
                System.out.println("Succeeded connecting to the Database!");
            }
            Statement statement = (Statement) con.createStatement();
            String sql = "SELECT quesid FROM tagsques WHERE tagid=0";
            ResultSet rs = statement.executeQuery(sql);
            int id = 0;
            while(rs.next()){
            	id = rs2.getInt("quesid");
                System.out.println("quesid\t" + id);
            }
            rs.close();
            con.close();
        } catch(ClassNotFoundException e) {   
            System.out.println("Sorry,can`t find the Driver!");   
            e.printStackTrace();   
            } catch(SQLException e) {
            e.printStackTrace();  
            }catch (Exception e) {
            e.printStackTrace();
        }
		return true;
	}

19.要注意,在楼上这种方法中,不同的操作,获得rs的方法不一样,这里介绍两种:executeUpdate适合INSERT和UPDATE,executeQuery适合SELECT

String sql = "INSERT INTO tagsques(tagid,queserid,time,hot) values(0,"+queserid+",'"+time+"',"+hot+")";
int rs1 = statement.executeUpdate(sql);

String sql = "SELECT quesid FROM tagsques WHERE tagid=0";
ResultSet rs2 = statement.executeQuery(sql);

20.可以很方便地获得日期时间,格式自定

Calendar calendar= Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
System.out.println(sdf.format(calendar.getTime()));

21.如果自己SQL语句不太好,在代码运行之前一定要区数据库用命令行实验一下

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值