创建项目
1、直接建立Maven项目
2、报错时点击run as 里的maven install 会直接下载相关配置。然后项目右键Maven——update project
3、
解决javaweb模板继承
WEB-INF下创建lib文件夹复制需要的jar插件
在pom.xml中添加
<dependency>
<groupId>freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.31</version>
<scope>system</scope>
</dependency>
<dependency>
<groupId>jstl-1.2-sources</groupId>
<artifactId>jstl-1.2-sources</artifactId>
<version>1.2</version>
<scope>system</scope>
</dependency>
在需要继承base.jsp中加入:
<%@ include file=“base.jsp” %>
(后来发现只加入改语句就能继承,不需要添加别的插件!!)
连接数据库
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>6.1.0.jre8</version>
</dependency>
写入到pom.xml中,然后maven install 然后再文件右键:
创建text.java测试数据库是否连接成功:
public class text {
public static void main(String[] args){
DButil d=new DButil();
System.out.print(d.connections());
}
}
报错:
解决:
进入JDK找到java-8-openjdk/jre/lib/security下的java.security,打开注释掉
jdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1, RC4, DES, MD5withRSA,
DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL,
include jdk.disabled.namedCurves
成功解决!!!
补充:本来是能够成功解决的,但是过了一段时间后发现又报这个错误,查看java.security文件发现之前注释掉的又恢复成原来的了,按这个操作重来一遍,发现这次还是报错。经过一顿搜索得到解决方法:
微软家的sqlserver驱动不好用,经常报各种错误,尝试更换 jtds驱动,maven依赖如下
<!-- https://mvnrepository.com/artifact/net.sourceforge.jtds/jtds -->
<dependency>
<groupId>net.sourceforge.jtds</groupId>
<artifactId>jtds</artifactId>
<version>1.3.1</version>
</dependency>
数据库配置作出以下修改:
sqlserver:
datasource:
url: jdbc:jtds:sqlserver://{ip}:{port};DatabaseName={}
driverClassName: net.sourceforge.jtds.jdbc.Driver
成功解决!
http://www.manongjc.com/article/63201.html
文件上传需要的包
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
</dependency>
MVC模式
ps:java文件在java Resources里面创建,不要在下面的文件夹里面创建,不然jsp和servlet无法连接
底层model中最重要的代码
public class DButil {
public static Connection connection =null;
public static PreparedStatement pstmt=null;
public static ResultSet rs=null;
private static User user;
//通用的增删改
public static boolean executeUpdate(String sql,Object[] params) {
int count=-1;
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
connection = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databasename=lzz","java","111111");
pstmt = connection.prepareStatement(sql);
if(params!=null) {
for(int i=0;i<params.length;i++) {
pstmt.setObject(i+1, params[i]);
}
}
count = pstmt.executeUpdate();
if(count>0) {
return true;
}else {
return false;
}
}catch(ClassNotFoundException e) {
e.printStackTrace();
return false;
}catch( SQLException e) {
e.printStackTrace();
return false;
}catch(Exception e) {
e.printStackTrace();
return false;
}
finally {
try {
if(pstmt!=null) pstmt.close();
if(connection!=null) connection.close();
}catch(SQLException e) {
e.printStackTrace();
}catch(Exception e) {
e.printStackTrace();
}
}
}
//通用的查 返回值是一个集合(User,List<User>,null)
public static ResultSet executeQuery(String sql,Object[] params) {
List<User> books=new ArrayList<>();
User user=null;
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
connection = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databasename=lzz","java","111111");
pstmt = connection.prepareStatement(sql);
if(params!=null) {
for(int i=0;i<params.length;i++) {
pstmt.setObject(i+1,params[i]);
}
}
rs = pstmt.executeQuery();
return rs;
}catch(ClassNotFoundException e) {
e.printStackTrace();
return null;
}catch( SQLException e) {
e.printStackTrace();
return null;
}catch(Exception e) {
e.printStackTrace();
return null;
}
}
//根据手机号查询
public static User queryUserByPhone(String sql,Object[] params) {
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
connection = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databasename=lzz","java","111111");
pstmt = connection.prepareStatement(sql);
pstmt.setObject(1, params[0]);
rs = pstmt.executeQuery();
if(rs.next()) {
String phone = rs.getString("phone") ;
String password = rs.getString("password") ;
String name = rs.getString("name");
String gender = rs.getString("gender") ;
String identity1 = rs.getString("identity1") ;
String notes = rs.getString("notes") ;
int sf = rs.getInt("sf");
String company = rs.getString("company") ;
user = new User(phone, password, name, gender, identity1, notes, sf, company);
}
return user ;
} catch (ClassNotFoundException e){
e.printStackTrace();
return null ;
} catch (SQLException e){
e.printStackTrace();
return null ;
}catch (Exception e) {
e.printStackTrace();
return null ;
}
finally {
try {
if(rs!=null)rs.close();
if(pstmt!=null)pstmt.close();
if(connection!=null)connection.close();
} catch (SQLException e){
e.printStackTrace();
}
}
}
//模糊查询(User,List<User>,null)
public static ResultSet executeQuerylike(String sql,Object[] params) {
List<User> books=new ArrayList<>();
User user=null;
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
connection = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databasename=lzz","java","111111");
pstmt = connection.prepareStatement(sql);
pstmt.setString(1, "%"+params[0]+"%");
rs = pstmt.executeQuery();
return rs;
}catch(ClassNotFoundException e) {
e.printStackTrace();
return null;
}catch( SQLException e) {
e.printStackTrace();
return null;
}catch(Exception e) {
e.printStackTrace();
return null;
}
}
}
dao连接底层DButil 代码
public class login_signup_dao implements login_signup_daointer{
public boolean isExist(String phone) {
return queryUser(phone)==null?false:true;
}
public boolean addUser(User user) {
String sql="insert into sigup_note(phone, password,sf) values(?,?,?)";
Object[] params= {user.getPhone(), user.getPassword(), user.getSf()};
return DButil.executeUpdate(sql, params);
}
public User queryUser(String phone) {
String sql="select * from sigup_note where phone =?";
Object[] params= {phone};
return DButil.queryUserByPhone(sql, params);
}
}
service
public class login_sigup_serviceinter implements login_signup_service{
login_signup_daointer log_sig = new login_signup_dao();
@Override
public User queryUser(String phone) {
// TODO Auto-generated method stub
if(!log_sig.isExist(phone)) {
User user = new User("null", "null", null, null,null,null,0,null);
return user;
}else {
return log_sig.queryUser(phone);
}
}
@Override
public boolean addUser(User user) {
// TODO Auto-generated method stub
System.out.println(user.getPhone());
if(!log_sig.isExist(user.getPhone())) {
//不存在
log_sig.addUser(user);
return true;
}else {
System.out.print("该账号已存在!");
return false;
}
}
}
控制层servlet,作用在模型和视图上
public class login extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.getRequestDispatcher("/html5up-dimension/login.jsp").forward(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
String phone=request.getParameter("phone");
String password = request.getParameter("password");
login_signup_service server = new login_sigup_serviceinter();
User user = server.queryUser(phone);
System.out.println(getType(user.getPassword()));
System.out.println(getType(password));
System.out.println(password == user.getPassword());
if(password.equals(user.getPassword())) {
HttpSession session = request.getSession(); //添加session
session.setAttribute("user", user);
request.getRequestDispatcher("profile").forward(request, response);
}
else {
request.setAttribute("error", "登录名或密码错误!请重新输入!");
request.getRequestDispatcher("/html5up-dimension/login.jsp").forward(request, response);
}
}
public static String getType(Object o){ //获取变量类型方法
return o.getClass().toString(); //使用int类型的getClass()方法
}
}
javaweb通过url访问本地文件
将文件所存放的文件夹映射为工作区外的web项目,就能过通过url在浏览器访问该文件