java mvc?java启动器手机版
各位老铁们,大家好,今天由我来为大家分享java mvc,以及java启动器手机版的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!
java MVC 实现增删改查
AddServlet类实现了servlet控制器的功能,但你这里只有一个add功能并不能体现控制器需要其他功能了就使用request对象获取请求资源路径针对不同的路径找到不同的Servelt实现控制器功能即MVC中的C;
packageservlet;
importjava.io.IOException;
importjavax.servlet.ServletException;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
publicclassAddServletextendsHttpServlet{
protectedvoiddoGet(HttpServletRequestreq,HttpServletResponseresp)throwsServletException,IOException{
req.setCharacterEncoding("utf-8");
resp.setCharacterEncoding("utf-8");
Stringname=req.getParameter("name");
Stringdescription=req.getParameter("description");
Stringbaseprice=req.getParameter("baseprice");
Stringwriter=req.getParameter("writer");
Stringpublish=req.getParameter("publish");
Stringpages=req.getParameter("pages");
Stringimages=req.getParameter("images");
Stringstock=req.getParameter("stock");
Productp=newProduct();
ProductDaoDao=newProductDao();
p.setName(name);
p.setDescription(description);
p.setBaseprice(baseprice);
p.setWriter(writer);
p.setPublish(publish);
p.setPages(pages);
p.setImages(images);
p.setStock(stock);
intresult=0;
try{
result=Dao.save(p);
}catch(Exceptione){
e.printStackTrace();
}
resp.setContentType("text/html");
if(result==1){
resp.sendRedirect("ok.jsp");
}else{
resp.sendRedirect("error.jsp");
}
}
}
ProductDao类实现了使用对象想数据库中添加记录的功能;
实现了MVC中的M模型
packageservlet;
importjava.sql.Connection;
importjava.sql.PreparedStatement;
publicclassProductDao{
publicintsave(Productp)throwsException{
Connectionconn=null;
PreparedStatementprep=null;
try{
conn=DBUtil.getConnection();
Stringsql="insertintoproductvalues(0,?,?,?,?,?,?,?,?)";
prep=conn.prepareStatement(sql);
prep.setObject(1,p.getName());
prep.setObject(2,p.getDescription());
prep.setObject(3,p.getBaseprice());
prep.setObject(4,p.getWriter());
prep.setObject(5,p.getPublish());
prep.setObject(6,p.getPages());
prep.setObject(7,p.getImages());
prep.setObject(8,p.getStock());
intnum=prep.executeUpdate();
returnnum;
}catch(Exceptione1){
e1.printStackTrace();
throwe1;
}finally{
DBUtil.close(conn);
}
}
}
Product类根据数据库的字段声明类的属性根据表名命名类名;
packageservlet;
publicclassProduct{
privateObjectname;
privateObjectdescription;
privateObjectbaseprice;
privateObjectwriter;
privateObjectpublish;
privateObjectpages;
privateObjectimages;
privateObjectstock;
publicObjectgetName(){
returnname;
}
publicvoidsetName(Objectname){
this.name=name;
}
publicObjectgetDescription(){
returndescription;
}
publicvoidsetDescription(Objectdescription){
this.description=description;
}
publicObjectgetBaseprice(){
returnbaseprice;
}
publicvoidsetBaseprice(Objectbaseprice){
this.baseprice=baseprice;
}
publicObjectgetWriter(){
returnwriter;
}
publicvoidsetWriter(Objectwriter){
this.writer=writer;
}
publicObjectgetPublish(){
returnpublish;
}
publicvoidsetPublish(Objectpublish){
this.publish=publish;
}
publicObjectgetPages(){
returnpages;
}
publicvoidsetPages(Objectpages){
this.pages=pages;
}
publicObjectgetImages(){
returnimages;
}
publicvoidsetImages(Objectimages){
this.images=images;
}
publicObjectgetStock(){
returnstock;
}
publicvoidsetStock(Objectstock){
this.stock=stock;
}
}
DBUtil类封装的是对数据库的连接:
packageservlet;
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.SQLException;
/**
*JDBC工具类:
*提供了获得连接,关闭连接的相关的方法。
*
*/
publicclassDBUtil{
privatestaticStringurl="jdbc:mysql://localhost:3306/ecport";
publicstaticConnectiongetConnection()throwsException{
Connectionconn=null;
try{
Class.forName("com.mysql.jdbc.Driver");
conn=DriverManager.
getConnection(url,"root","");
}catch(Exceptione){
e.printStackTrace();
throwe;
}
returnconn;
}
publicstaticvoidclose(Connectionconn){
if(conn!=null){
try{
conn.close();
}catch(SQLExceptione){
e.printStackTrace();
}
}
}
/**
*@paramargs
*@throwsException
*/
publicstaticvoidmain(String[]args)throwsException{
Connectionconn=
getConnection();
System.out.println(conn);
}
}
最后是MVC中的视图,实现的shiMVC中的V视图,在AddServlet中根据不同的结果受用重定向跳转到指定的页面中,表明是否添加成功。成功页面:
<%@page pageEncoding="utf-8"
contentType="text/html;charset=utf-8"%>
<html>
<body>
<h3 style='color:red'>恭喜你,新增图书成功!!!</h3>
</body>
</html>
失败页面:
<%@page pageEncoding="utf-8"
contentType="text/html;charset=utf-8"%>
<html>新增失败</html>
java开发web现在一般用什么mvc框架
您好,这样的:
1、框架不是一开始就有的。在java web开发的世界里,最开始就只有一个可用的servlet API,你要开发web应用,就只能靠它了;
就单单这个简陋的API,开发起来,实在是捉襟见肘。于是在一个个前赴后继的'先烈'往这个坑里跳的同时,一部分人实在看不下去了,于是便有了所谓的框架。其实这个时候的所谓框架就是个框框,帮你解决了一部分的工作,可是还是很难用,更别谈什么解耦、扩展,吧啦吧啦滴;
2、MVC童鞋最开始对于Web开发者而言还不一定混的很熟,它也就是一个设计模式而已。突然某一天,某个大神发现这个东西用在Web开发上真是物尽其用啊,很好地解耦了web请求过程中的数据、业务逻辑和信息展示,而且很好地提供了各个部分的扩展性。概括起来,就是说它妙不妙,谁用谁知道啊!,这个时候,MVC与Web开发的关系迅速进入蜜月期,作为一个web开发者,聊天的时候,你都不好意思说不知道MVC。于是,各种web开发的MVC框架雨后春笋般的,往外冒...这个时期,struts是java世界中最被广大web开发者接受的大众情人了。
3、差不多与此同时,javaEE的世界还有另一个大众情人,那就是EJB了。不过她仗着大家对她的宠爱,越来越啰嗦、拖沓,养成了不少的坏毛病。此时一个牛X哄哄的家伙看不爽了,捧出了另一个新人-spring。这个家伙的横空出世,让java世界的小伙伴们惊呆了,他是那样的清纯、优雅,令人着迷。于是,过不了一些时间,spring逐渐超越了EJB,成了java世界当之无愧的No.1大众情人了。毫无疑问,它对web开发者展现了她独有的,性感的一面-spring MVC。
4、spring尽管光环无比闪耀,spring MVC拥有对web开发者独有的吸引力,但她为了扩大自己的魅力,同时与struts等老的大众情人交好,提供友好的扩展。毕竟每个web开发者对于web MVC框架都有自己的心头好,每个web MVC框架也拥有自己的粉丝。此时,在Web MVC框架的领地基本是百花争放,百家争鸣了。
5、没有不老的神话,也没有绝对的大众情人。在spring大行其道的今天,她为了吸引更多的粉丝,给自己的套上了一件又一件华丽的外衣,以期满足所有web开发屌丝对女神的所有幻想。这样,之前的一些粉丝,觉得spring失去了其最初的纯粹,连带spring MVC也慢慢地不是那么有吸引力了。这个时候,一些最开始的粉丝,开始转移目标,以spring为原型或者依托,捧红了像play framework、JFinal等一些小清新了。
如何设计一个Java Web MVC框架
首先要明白mvc框架的主要目的:把视图和逻辑分开,就是降低界面和代码的耦合度。不知道问的是java的mvc还是点net的mvc,总之目的都一样。
1.重写路由和寻址,配置大于设计。MVC的C最重要,就是控制器最重要,尤其是自己的项目越来越大,模块越来越独立,更要注重路由和寻址。可以高效的管理和开发在同一项目里的不同子系统。
2.动态可配。凡事页面动态现实的信息,尽量抽取出来做成可配的数据,公共信息一般存在xml里面,其他存数据库。方便以后整体改版或升级。
3.分层开发,降低耦合度。把界面层,逻辑层,数据层的耦合度降到最低。例如:想换一种数据库,只需要修改数据层的代码就行了,这样对项目改动最小。千万别数据库查出来的数据直接送到UI层,这样一改全改,一定要定义好每层之间的传输实体。
4.独立成块,可扩展。能独立成模块的尽量独立出来,方便以后维护和扩展。比如想为android和ios提供api。不需要再重写一遍相同的逻辑,直接把模块拿来用就可以了。
关于java mvc,java启动器手机版的介绍到此结束,希望对大家有所帮助。