很久以前写过基于tomcat的通讯录,但那其中遇到的问题我是一个都不记得了,自然也不记得当时配置环境有多么困难,这次重新写基于tomcat的项目,在最初的环境配置上就遇到了许多问题,磕磕绊绊也是解决了,在放项目代码之前首先描述一下问题与解决方法。
问题与解决方法
1、tomcat访问项目的路径中一直有项目名(war_exploded)。

网上的解决方案我看了很多 ,也一一跟着改了,server.xml改了,edit configuration改了,但没一个解决了我的问题,哪怕清空idea缓存,重启idea和tomcat也没有作用。
解决方法:
我用的笨方法,(聪明方法我用了是一点作用没有,可能我电脑随我,聪明不来)首先确实是要修改server.xml,在host中加上这么一行,其中path表示直接访问docBase路径,docBase则是项目所在地(我把项目放在了tomcat的webapps里,如果不放这里的话,docbase里也可以放绝对路径)
<Context path="/" docBase="/3_BookManage" debug="0" reloadable="true" />
其次是在idea里修改tomcat的加载方式与访问路径

2、一直加载修改前的项目
在我大改完我的项目后(删掉一些jsp界面与servlet),项目还是锲而不舍地访问我删掉的界面,搞得我非常困惑,毕竟我也尝试重新编译过了,后来我遍历整个项目,发现只有一个地方还存在我删除的文件,那就是在out里

最初我把整个out文件夹下的内容都删了,重新运行项目,此时out文件夹可以正常获取到servlet的文件数据,但是jsp文件直接报了404,后来我直接将项目中的web文件夹里的内容放到out的artifacts中,终于项目正常运行了。

3、项目的导包问题
需要三个包
![]()
![]()
最开始我只通过project structure把需要的包导进了项目,但此时jsp一直无法获取到数据库的数据,后来才发现,把包导在web里就可以了。有两个包,在我导入之后一直不起作用,在我bulid之后代码依旧标红,后来我右键jar包,将他们加入library root,此时就没有报错了,包已成功导入。

开始介绍项目情况
项目目录


Book实体类:
package book.bean;
public class Book {
/**
* 序号
*/
private int id;
/**
* 书名
*/
private String bookname;
/**
* 作者
*/
private String author;
/**
* 出版社
*/
private String introduce;
/**
* 价格
*/
private int price;
/**
* 状态
*/
private String status;
/**
* 入馆时间
*/
private String entry_time;
/**
* book
*/
private static final long serialVersionUID = 1L;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getBookname() {
return bookname;
}
public void setBookname(String bookname) {
this.bookname = bookname == null ? null : bookname.trim();
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author == null ? null : author.trim();
}
public String getIntroduce() {
return introduce;
}
public void setIntroduce(String introduce) {
this.introduce = introduce;
}
public Integer getPrice() {
return price;
}
public void setPrice(Integer price) {
this.price = price;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getEntry_time() {
return entry_time;
}
public void setEntry_time(String entry_time) {
this.entry_time = entry_time;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(getClass().getSimpleName());
sb.append(" [");
sb.append("Hash = ").append(hashCode());
sb.append(", id=").append(id);
sb.append(", bookname=").append(bookname);
sb.append(", author=").append(author);
sb.append(", introduce=").append(introduce);
sb.append(", price=").append(price);
sb.append(", status=").append(status);
sb.append(", entry_time=").append(entry_time);
sb.append(", serialVersionUID=").append(serialVersionUI

最低0.47元/天 解锁文章
2202

被折叠的 条评论
为什么被折叠?



