如何使用MyEclipse开发一个JavaWeb网站 |
您所在的位置:网站首页 › myeclipse怎么建立web项目 › 如何使用MyEclipse开发一个JavaWeb网站 |
如何使用MyEclipse开发一个JavaWeb网站
本文所述的内容仅用于参考或学习,主要针对毕业设计等网站设计,请勿实际用于生产开发用途,否则后果自负: 如何使用MyEclipse开发一个JavaWeb网站 MyEclipse的安装新建项目编码导入Struts2、Hibernate并配置MySQL导入个人编写的Java_SSH_Easyer登录Demo 第一步 建立数据表并逆向生成数据库表为实体类到项目第二步 创建Action并处理业务请求第三步 编写struts.xml第四步 创建jsp页面 内容管理DEMO 查增删改综合 总结附录 转载请注明出处谢谢。 MyEclipse的安装这里我使用的是MyEclipse10.7.1,下载地址 [ 度盘 ],密码:6aw3。破解方法:博客,补丁下载地址:脚本之家 新建项目打开MyEclipse后如图所示:
填写完毕后点击 Finish 就可以了 编码推荐使用UTF-8编码进行编写网站。修改方法:Window->Preferences->General->Workspace struts2 安装过程请按照这里的教程进行安装,注意编码一定要填写UTF-8 Hibernate Hibernate必须在MySQL安装之后进行(如果要求用sqlserver就安装sqlserver后进行) 点击Window->Open Perspective->MyEclipse Hibernate 个人编写的代码并不适用于生产环境,如需应用请斟酌使用。 Github:JAVA_SSH_Easyer 下载ZIP后将/src/struts.xml内容复制到项目中src/struts.xml中保存。这个代码中的大部分内容是范例内容。需要进行修改。 自己建立三个包,包名可以自己定,但最后要为action、hibernate、tools例如你叫李华可以叫com.lihua.action,com.lihua.hibernate,com.lihua.tools: 现在用刚刚搭建好的框架写一个登录功能吧! 首先要确定登录功能需要哪些内容: 登录页*1登录后的主页*1登录功能*1需要的数据: 用户数据 第一步 建立数据表并逆向生成数据库表为实体类到项目用户数据需要用户名、密码、用户id三项内容,所以我们在数据库中创建一个User表: 新建逆向工程的方法: 打上JavaDataObject的对勾和Create POJODB Table mapping information的对勾,去掉absolute对勾,java package选择你对应的Hibernate包后点下一步: 这里使用Action用于处理业务内容,struts.xml用于处理Action具体方法与jsp、路由(对应浏览网址)的对应关系。 Created with Raphaël 2.1.2 用户 用户 服务器 服务器 struts.xml处理程序 struts.xml处理程序 Action Action 对应jsp页面 对应jsp页面 ①网址 ②解析后的网址 ③请求实例方法 ④实例方法返回值 ⑤Action传递的数据 ⑥最终页面 ⑦最终页面用户访问网址后服务器根据struts进行解析,新建指定Action的实例并调用指定方法,并根据方法返回值显示指定页面。 我们在com.lihua.action中新建一个类,名字叫UserAction继承自BaseAction并重写check方法: package com.lihua.action; public class UserAction extends BaseAction{ @Override public boolean check() { // TODO Auto-generated method stub return false; } }这个check方法就是Action的拦截器,默认返回true就可以了。如果有需要可以判断登录状态。这里要写登录功能,所以不能让check返回false。 我们新建的这个Action类相当于一类页面和功能的集合,这里UserAction处理用户相关的页面请求,一会要建立的HomeAction用于处理后台相关页面的请求。 这里我们有两个任务:1.登录页,2.登录功能 登录页暂时不需要向前端传送什么,所以直接返回SUCCESS;就可以了。登录功能需要判断登录所用用户名与密码是否正确,所以要调用数据库。首先建立两个方法: public String login(){ return SUCCESS; } public String checkLogin(){ return SUCCESS; }所有页面请求的方法都需要返回String,后续需要在struts.xml中添加。 有关数据处理: 在checkLogin中我们需要获取前端传来的数据。我在BaseAction中对数据获取进行了封装,在方法中直接使用p方法即可: String username = p("username"); String password = p("password");查询数据库使用M方法的各种操作即可。详情请看Readme.md DB_Where where = new DB_Where(); where.setWhere("username", username); where.setWhere("password", password); List s = (List) M("User").where(where).select(); if(s.isEmpty()) return error("登录失败");判断s是否为空即可判断用户名密码是否正确了。这里的error方法是BaseAction的封装,用于功能类方法的成功与失败提示与跳转,有三个重载,第一个参数是提示内容,必须要有。第二个参数是目标跳转的url,默认是上一个页面。第三个参数是等待时间,默认error5秒,success2秒。 登录成功后需要将数据写入到session中。这里BaseAction也进行了封装,使用session(“键名”,值);即可存储session,使用session(“键名”);即可读取session。 所以登录功能的完整代码: package com.lihua.action; import java.util.List; import com.lihua.hibernate.User; import com.lihua.tools.DB_Where; public class UserAction extends BaseAction{ private static final long serialVersionUID = -4987597667769252852L; @Override public boolean check() { // TODO Auto-generated method stub return true; } public String login(){ return SUCCESS; } public String checkLogin(){ String username = p("username"); String password = p("password"); DB_Where where = new DB_Where(); where.setWhere("username", username); where.setWhere("password", password); List s = (List) M("User").where(where).select(); if(s.isEmpty()) return error("登录失败"); session("User",s.get(0)); return success("登录成功","Home/index"); } }我们再建立一个HomeAction当做临时的后台Action: package com.lihua.action; public class HomeAction extends BaseAction{ private static final long serialVersionUID = -4972832333971194628L; @Override public boolean check() { if(session("User")==null) return false; return true; } public String index(){ return SUCCESS; } } 第三步 编写struts.xml打开src/struts.xml,内容如下: /Public/success.jsp /Public/error.jsp /User/login.jsp /User/reg.jsp login login login根据我们页面的设计我们共有三个页面:Home/index、User/login、User/checkLogin,两个Action。所以要建立两个package(globa-results是Action中success与error方法要用到的,每个package都要添加): /Public/success.jsp /Public/error.jsp /Public/success.jsp /Public/error.jsp逐个添加方法: login(需要显示前端,所以要写好success): /User/login.jspcheckLogin: index: /Home/index.jsp最终生成的struts.xml: /Public/success.jsp /Public/error.jsp /User/login.jsp /Public/success.jsp /Public/error.jsp /Home/index.jsp 第四步 创建jsp页面根据我们struts.xml的设置,我们需要建立两个文件: /Home/index.jsp,/User/login.jsp,这两个一个是后台首页,另一个是登录页。我们新建这两个文件,推荐从原有login.jsp复制并重命名。 登录页需要提交一个username,password的表单到/User/checkLogin 于是可以在login.jsp页面写: 用户名 密码 提交Home/index.jsp暂时不写。 网站默认访问的页面是根目录下的index.jsp,我们可以在index.jsp下写一个跳转js跳转到login功能。把WebRoot/User/login.jsp内容直接复制到WebRoot下的index.jsp里并保存,并写一段js: location.href="";下面我们就可以运行测试了,右键点击我们的项目,点击Run As->MyEclipse Server Application运行。然后就能看到我们的登录页面了。随便输个错误密码点登录,然后输正确密码点登录测试一下看看效果吧~ 说到管理,无非就是增删改查。那么我们怎么在javaweb下进行增删改查呢? 下面我们来写一个用户管理的例子 查我们在UserAction中进行编写userList方法,Action只负责权限的验证与数据的处理。 public String userList(){ if(session("User")==null) return error("请登录","User/login"); User u = (User)session("User"); if(u.getId()!=1) return error("请登录","User/login");//规定uid是1的才能管理用户列表 this.assign("userlist", M("User").select()); return SUCCESS; }struts.xml略 jsp页面: 用户id 用户名这里的s标签用法尽情的百度搜索一大堆。 增我们在UserAction中进行编写addUser方法。 public String addUser(){ if(session("User")==null) return error("请登录","User/login"); User u = (User)session("User"); if(u.getId()!=1) return error("请登录","User/login");//规定uid是1的才能管理用户列表 if(p("username")!=null){//添加用户 User s = new User(); s.setUsername(p("username")); s.setPassword(p("password")); M("User").add(s); return success("添加成功","User/userList"); } return SUCCESS; }struts.xml略 jsp页面: 添加 删我们在UserAction中进行编写delUser方法。 public String delUser(){ if(session("User")==null) return error("请登录","User/login"); User u = (User)session("User"); if(u.getId()!=1) return error("请登录","User/login");//规定uid是1的才能管理用户列表 if(p("uid")==null) return error("非法操作"); int uid=0; try{ uid=Integer.parseInt(p("uid"));//get传个uid过来就能删了这个用户了。 }catch(Exception e){ return error("非法操作"); } M("User").delete(uid); return success("删除成功","User/userList"); }struts.xml略 可以在userList页面中这样调用: 删除 改我们在UserAction中进行编写editUser方法。 public String editUser(){ if(session("User")==null) return error("请登录","User/login"); User u = (User)session("User"); if(u.getId()!=1) return error("请登录","User/login");//规定uid是1的才能管理用户列表 if(p("id")!=null){//提交了 int id=0; try{ id=Integer.parseInt(p("id"));//get传个uid过来就能删了这个用户了。 }catch(Exception e){ return error("非法操作"); } User sv = (User) M("User").find(id); if(sv==null) return error("用户不存在"); sv.setPassword(p("password")); sv.setUsername(p("username")); M("User").save(sv); return success("修改成功","User/userList"); } if(p("uid")==null) return error("非法操作"); int uid=0; try{ uid=Integer.parseInt(p("uid"));//get传个uid过来就能删了这个用户了。 }catch(Exception e){ return error("非法操作"); } User s = (User) M("User").find(uid); if(s==null) return error("用户不存在"); this.assign("user",s); return SUCCESS; }struts.xml略 jsp: 保存 综合修改userList.jsp为如下内容: 新增 用户id 用户名 操作 删除 修改效果如图: 基本的管理页面骨架已经出来了。最后需要大家根据各种模板的样式等等对骨架进行加工。 登录后的Home/index可以存放一个iframe用于加载用户菜单页面。登录页面模板也很多。当然也很推荐大家自己用基本的框架写诸如bootstrap,layui之类的。如果在写代码的时候遇到什么问题请在下方回复,我会尽量帮忙解决。 附录最终struts.xml: /Public/success.jsp /Public/error.jsp /User/login.jsp /User/userList.jsp /User/addUser.jsp /User/editUser.jsp /Public/success.jsp /Public/error.jsp /Home/index.jsp最终UserAction.java package com.lihua.action; import java.util.List; import com.lihua.hibernate.User; import com.lihua.tools.DB_Where; import com.lihua.tools.Tool; public class UserAction extends BaseAction{ private static final long serialVersionUID = -4987597667769252852L; @Override public boolean check() { // TODO Auto-generated method stub return true; } public String login(){ return SUCCESS; } public String checkLogin(){ String username = p("username"); String password = p("password"); DB_Where where = new DB_Where(); where.setWhere("username", username); where.setWhere("password", password); List s = (List) M("User").where(where).select(); if(s.isEmpty()) return error("登录失败"); session("User",s.get(0)); return success("登录成功","Home/index"); } public String userList(){ if(session("User")==null) return error("请登录","User/login"); User u = (User)session("User"); if(u.getId()!=1) return error("请登录","User/login");//规定uid是1的才能管理用户列表 List l = M("User").select(); this.assign("userlist", l); return SUCCESS; } public String addUser(){ if(session("User")==null) return error("请登录","User/login"); User u = (User)session("User"); if(u.getId()!=1) return error("请登录","User/login");//规定uid是1的才能管理用户列表 if(p("username")!=null){//添加用户 User s = new User(); s.setUsername(p("username")); s.setPassword(p("password")); M("User").add(s); return success("添加成功","User/userList"); } return SUCCESS; } public String delUser(){ if(session("User")==null) return error("请登录","User/login"); User u = (User)session("User"); if(u.getId()!=1) return error("请登录","User/login");//规定uid是1的才能管理用户列表 if(p("uid")==null) return error("非法操作"); int uid=0; try{ uid=Integer.parseInt(p("uid")); }catch(Exception e){ return error("非法操作"); } M("User").delete(uid); return success("删除成功","User/userList"); } public String editUser(){ if(session("User")==null) return error("请登录","User/login"); User u = (User)session("User"); if(u.getId()!=1) return error("请登录","User/login");//规定uid是1的才能管理用户列表 if(p("id")!=null){//提交了 int id=0; try{ id=Integer.parseInt(p("id"));//get传个uid过来就能删了这个用户了。 }catch(Exception e){ return error("非法操作"); } User sv = (User) M("User").find(id); if(sv==null) return error("用户不存在"); sv.setPassword(p("password")); sv.setUsername(p("username")); M("User").save(sv); return success("修改成功","User/userList"); } if(p("uid")==null) return error("非法操作"); int uid=0; try{ uid=Integer.parseInt(p("uid"));//get传个uid过来就能删了这个用户了。 }catch(Exception e){ return error("非法操作"); } User s = (User) M("User").find(uid); if(s==null) return error("用户不存在"); this.assign("user",s); return SUCCESS; } } 转载请注明出处谢谢。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |