idea创建项目步骤和遇到的问题登录代码

来源:互联网 发布:单片机编程要学什么 编辑:程序博客网 时间:2024/05/18 19:45

你还在纠结怎么建idea项目吗??????

看看吧





      点击左上角file→Settings

选择Build,Execution,Deployment→Build Tools→Maven→Runner,在VM输入-DarchetypeCatalog=internal,点击ok




你如果想写idea项目的时候省点时间省点力气的话你可以做接下来的操作

可以在你的局域网上拿东西也可以从官网上拿东西导入一个文件即可

首先打开你的C盘    然后有一个文件夹叫User s    然后你打开uses有一个。m2的文件夹   你要打开它

然后你把下面的这个。XML文件扔进去就完美了


手动安装本地jar包到仓库
mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.2.0.1.0 -Dpackaging=jar -Dfile=ojdbc6.jar


你还在为创建servlet而发愁吗????

一定要记住下面的操作哦孩子   长点心吧

请你点一下你的项目让后请你按住F4如果不行如果你出不来东西请你按住Fn+F4好吗.

然后你就会发现出来一个东东   对吧


你会看到你的项目下边有一个web吧

然后你就点击减号删掉这个web   重新加一个 web   也就是下面这张图


全部完成你的这些操作就好了   完美么么哒

你不是想偷懒吗   那就记住下面的快捷键吧


Ctrl+Shift + Enter,语句完成
“!”,否定完成,输入表达式时按 “!”键
Ctrl+E,最近的文件
Ctrl+Shift+E,最近更改的文件
Shift+Click,可以关闭文件
Ctrl+[ OR ],可以跑到大括号的开头与结尾
Ctrl+F12,可以显示当前文件的结构
Ctrl+F7,可以查询当前元素在当前文件中的引用,然后按 F3 可以选择
Ctrl+N,可以快速打开类
Ctrl+Shift+N,可以快速打开文件
Alt+Q,可以看到当前方法的声明
Ctrl+P,可以显示参数信息
Ctrl+Shift+Insert,可以选择剪贴板内容并插入
Alt+Insert,可以生成构造器/Getter/Setter等
Ctrl+Alt+V,可以引入变量。例如:new String(); 自动导入变量定义
Ctrl+Alt+T,可以把代码包在一个块内,例如:try/catch
Ctrl+Enter,导入包,自动修正
Ctrl+Alt+L,格式化代码
Ctrl+Alt+I,将选中的代码进行自动缩进编排,这个功能在编辑 JSP 文件时也可以工作
Ctrl+Alt+O,优化导入的类和包
Ctrl+R,替换文本
Ctrl+F,查找文本
Ctrl+Shift+Space,自动补全代码
Ctrl+空格,代码提示(与系统输入法快捷键冲突)
Ctrl+Shift+Alt+N,查找类中的方法或变量
Alt+Shift+C,最近的更改
Alt+Shift+Up/Down,上/下移一行
Shift+F6,重构 – 重命名
Ctrl+X,删除行
Ctrl+D,复制行
Ctrl+/或Ctrl+Shift+/,注释(//或者/**/)
Ctrl+J,自动代码(例如:serr)
Ctrl+Alt+J,用动态模板环绕
Ctrl+H,显示类结构图(类的继承层次)
Ctrl+Q,显示注释文档
Alt+F1,查找代码所在位置
Alt+1,快速打开或隐藏工程面板
Ctrl+Alt+left/right,返回至上次浏览的位置
Alt+left/right,切换代码视图
Alt+Up/Down,在方法间快速移动定位
Ctrl+Shift+Up/Down,向上/下移动语句
F2 或 Shift+F2,高亮错误或警告快速定位
Tab,代码标签输入完成后,按 Tab,生成代码
Ctrl+Shift+F7,高亮显示所有该文本,按 Esc 高亮消失
Alt+F3,逐个往下查找相同文本,并高亮显示
Ctrl+Up/Down,光标中转到第一行或最后一行下
Ctrl+B/Ctrl+Click,快速打开光标处的类或方法(跳转到定义处)
Ctrl+Alt+B,跳转到方法实现处
Ctrl+Shift+Backspace,跳转到上次编辑的地方
Ctrl+O,重写方法
Ctrl+Alt+Space,类名自动完成
Ctrl+Alt+Up/Down,快速跳转搜索结果
Ctrl+Shift+J,整合两行
Alt+F8,计算变量值
Ctrl+Shift+V,可以将最近使用的剪贴板内容选择插入到文本
Ctrl+Alt+Shift+V,简单粘贴
Shift+Esc,不仅可以把焦点移到编辑器上,而且还可以隐藏当前(或最后活动的)工具窗口
F12,把焦点从编辑器移到最近使用的工具窗口
Shift+F1,要打开编辑器光标字符处使用的类或者方法 Java 文档的浏览器
Ctrl+W,可以选择单词继而语句继而行继而函数
Ctrl+Shift+W,取消选择光标所在词
Alt+F7,查找整个工程中使用地某一个类、方法或者变量的位置
Ctrl+I,实现方法
Ctrl+Shift+U,大小写转化
Ctrl+Y,删除当前行


Shift+Enter,向下插入新行
psvm/sout,main/System.out.println(); Ctrl+J,查看更多
Ctrl+Shift+F,全局查找
Ctrl+F,查找/Shift+F3,向上查找/F3,向下查找
Ctrl+Shift+S,高级搜索
Ctrl+U,转到父类
Ctrl+Alt+S,打开设置对话框
Alt+Shift+Inert,开启/关闭列选择模式
Ctrl+Alt+Shift+S,打开当前项目/模块属性
Ctrl+G,定位行
Alt+Home,跳转到导航栏
Ctrl+Enter,上插一行
Ctrl+Backspace,按单词删除
Ctrl+”+/-”,当前方法展开、折叠
Ctrl+Shift+”+/-”,全部展开、折叠
【调试部分、编译】
Ctrl+F2,停止
Alt+Shift+F9,选择 Debug
Alt+Shift+F10,选择 Run
Ctrl+Shift+F9,编译
Ctrl+Shift+F10,运行
Ctrl+Shift+F8,查看断点
F8,步过
F7,步入
Shift+F7,智能步入
Shift+F8,步出
Alt+Shift+F8,强制步过
Alt+Shift+F7,强制步入
Alt+F9,运行至光标处
Ctrl+Alt+F9,强制运行至光标处
F9,恢复程序
Alt+F10,定位到断点
Ctrl+F8,切换行断点
Ctrl+F9,生成项目
Alt+1,项目
Alt+2,收藏
Alt+6,TODO
Alt+7,结构
Ctrl+Shift+C,复制路径
Ctrl+Alt+Shift+C,复制引用,必须选择类名
Ctrl+Alt+Y,同步
Ctrl+~,快速切换方案(界面外观、代码风格、快捷键映射等菜单)
Shift+F12,还原默认布局
Ctrl+Shift+F12,隐藏/恢复所有窗口
Ctrl+F4,关闭
Ctrl+Shift+F4,关闭活动选项卡
Ctrl+Tab,转到下一个拆分器
Ctrl+Shift+Tab,转到上一个拆分器
【重构】
Ctrl+Alt+Shift+T,弹出重构菜单
Shift+F6,重命名
F6,移动
F5,复制
Alt+Delete,安全删除
Ctrl+Alt+N,内联
【查找】
Ctrl+F,查找
Ctrl+R,替换
F3,查找下一个
Shift+F3,查找上一个
Ctrl+Shift+F,在路径中查找
Ctrl+Shift+R,在路径中替换
Ctrl+Shift+S,搜索结构
Ctrl+Shift+M,替换结构
Alt+F7,查找用法
Ctrl+Alt+F7,显示用法
Ctrl+F7,在文件中查找用法
Ctrl+Shift+F7,在文件中高亮显示用法


博客登录

mySQL的列表



整体架构

实体层

public class UserInfo {    private Integer userCode;    private String userName;    private String userPwd;    private Date lastLoginTime;    private boolean isUse;dao层
//登录public boolean isLogin(UserInfo info) throws Exception;

impl层
public boolean isLogin(UserInfo info) throws Exception {     boolean flag=false;     String  sql="SELECT COUNT(1) AS UserCode FROM blogs WHERE  UserCode=? AND UserPwd=?";     Object[] paras={info.getUserCode(),info.getUserPwd()};     ResultSet rs = executeQuery(sql, paras);     if (rs.next()){         if (rs.getInt("UserCode")>0){             flag=true;         }     }     return flag; }/* //登录的单侧单侧 @Test public void Login(){     UserInfo info=new UserInfo();     info.setUserCode(1);     info.setUserPwd("222222");     try {         boolean flag = isLogin(info);         System.out.println(flag);     } catch (Exception e) {         e.printStackTrace();     } }*/
servlet层
public class dServlet extends HttpServlet {    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        blogDao d=new blog();        String userCode=request.getParameter("userCode");        String userPwd=request.getParameter("userPwd");        UserInfo info=new UserInfo();        System.out.println(userCode+"===================");        info.setUserCode(Integer.parseInt(userCode));        info.setUserPwd(userPwd);        try {            boolean flag = d.isLogin(info);            if (flag){                request.getRequestDispatcher("/BlogHtTemplate-master/html/main.html").forward(request,response);            }else{                response.sendRedirect("/BlogHtTemplate-master/html/index.html");            }        } catch (Exception e) {            e.printStackTrace();        }    }    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request,response);    }}
登录的界面是长这样的
如果你登录进去的话就会弹出这样的一个华丽的界面啦

然后你会想查看你自己的数据

然后你就遍历出了你的数据库里面的信息啦


那么是怎么出现的列表呢    是不是很期待代码呢    接着往下看就是显示代码

DAO层

//遍历public List<BlogInfo> getAll() throws  Exception;
IMPL层

public List<BlogInfo> getAll() throws Exception {    List<BlogInfo> list=new ArrayList<BlogInfo>();    String sql="select*from bloginfo where blogDel=0";    ResultSet rs=executeQuery(sql);    while(rs.next())    {        BlogInfo info=new BlogInfo();        info.setBlogId(rs.getInt("blogId"));        info.setBlogAuthor(rs.getString("blogAuthor"));        info.setBlogAddress(rs.getString("blogAddress"));        info.setBlogDel(rs.getBoolean("blogDel"));        list.add(info);    }    return list;}

servlet层

else if (action.equals("list")) {    try {        List<BlogInfo> blogList = d.getAll();        request.setAttribute("blogList", blogList);        System.out.println(666666);        request.getRequestDispatcher("BlogHtTemplate-master/html/blog/bloglist2.jsp").forward(request, response);        System.out.println(2123);    } catch (Exception e) {        e.printStackTrace();    }

界面层jsp    照片和名字是数据库拼接的是这样的

<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false"  %><%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%><!DOCTYPE html><html><head lang="en">    <meta charset="UTF-8">    <meta name="viewport"          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"/>    <title>博客列表</title>    <link  rel="stylesheet"  href="/BlogHtTemplate-master/bootstrap/css/bootstrap.css"></link>    <link  rel="stylesheet"  href="/BlogHtTemplate-master/css/myCSS.css"></link>    <link  rel="stylesheet"  href="/BlogHtTemplate-master/css/blogAdd.css"></link>    <script type="text/javascript"  src="/BlogHtTemplate-master/bootstrap/js/jquery-1.12.4.js"></script>    <script type="text/javascript"  src="/BlogHtTemplate-master/bootstrap/js/bootstrap.js"></script>    <script type="text/javascript">        function editBlog(id,obj){            $("#rid").val(id);        }    </script></head><body>    <!-- 学伴 -->    <div class="clearfix" id="home_partner">        <div class="container">            <h2 class="btitle">                有伴有爱有力量,再也不怕学习没动力            </h2>            <h4 class="subtitle">            <span>                学习从来不是轻松事,与其孤身奋战,不如找到志同道合小伙伴一起坚持到底,微冷的雨            </span>            </h4>            <br>            <div class="row text-center">                <c:forEach items="${blogList}" var="item">                    <div class="col-sm-4">                        <div class="partneritem" style="position:relative;">                            <div>                            <img width="319px" height="319px" class="img-responsive" src="/BlogHtTemplate-master/image/${item.blogAuthor}.jpg" alt="">                            </div>                            <div id="operation" style="position:absolute;background:pink;opacity:0.5;filter:alpha(opacity=50);text-align:center;margin-top:-50px;z-index:20;width: 290px;height: 40px;border: 1px solid red;">                                <a href="#mymodal" data-toggle="modal" onclick="editBlog(${item.blogId},this)">修改</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a>删除</a>                            </div>                            <h4>                                ${item.blogAuthor}                            </h4>                            <p>                                <a target="_blank" href="${item.blogAddress}">${item.blogAddress}</a>                            </p>                        </div>                    </div>                </c:forEach>
你既然出来了列表是不是好想进行你自己的调整呢

比如修改

修改只是在这个界面上进项的操作并不需要添加任何的jsp

修改的DAO层

/03.修改博客public  boolean editBlog(BlogInfo info) throws  Exception;
修改的IMPL

//修改    public boolean editBlog(BlogInfo info) throws Exception {        boolean flag=false;            String sql="update blogInfo set blogAuthor=?,blogAddress=? where blogId=?";            Object[] paras={info.getBlogAuthor(),info.getBlogAddress(),info.getBlogId()};            int count = executeUpdate(sql, paras);            if (count>0){                flag=true;            }            return flag;    }

修改的servlet层

 if (action.equals("update")){  //修改    System.out.println("===================================++++++++++++++++");    BlogInfo blogInfo=new BlogInfo();    String blogAuthor=request.getParameter("blogAuthor");    String blogAddress=request.getParameter("blogAddress");    int blogId=Integer.parseInt(request.getParameter("blogId"));    blogInfo.setBlogAuthor(blogAuthor);    blogInfo.setBlogAddress(blogAddress);    blogInfo.setBlogId(blogId);    try {        boolean flag = d.editBlog(blogInfo);        if (flag){            request.getRequestDispatcher("/BlogHtTemplate-master/html/main.html").forward(request,response);        }    } catch (Exception e) {        e.printStackTrace();    }}
写完了基础的代码来看看页面是怎么写的吧

既然不需要jsp    那么需要在页面加一些什么代码呢

<!--弹出的模态框--><div id="mymodal" class="modal fade bs-examlpe-modal-sm"><!-- modal固定布局,上下左右都是0表示充满全屏,支持移动设备上使用触摸方式进行滚动。。-->    <div class="modal-dialog modal-sm"><!-- modal-dialog默认相对定位,自适应宽度,大于768px时宽度600,居中-->        <div class="modal-content"><!-- modal-content模态框的边框、边距、背景色、阴影效果。-->            <div class="modal-header">                <button class="close" data-dismiss="modal">&times;</button>                <h4 class="modal-title">                    修改                    <small>权志龙</small>                </h4>            </div>            <div class="media-body">                <form action="InfoServlet?action=update" method="post">                    <input type="hidden" name="blogId" value="" id="rid"/>                    <div class="col-md-10 col-md-offset-1 myMP">                        博客作者:<input name="blogAuthor" class="form-control" type="text" placeholder="博客作者"/>                    </div>                    <div class="col-md-10 col-md-offset-1 myMP">                       博客地址: <input name="blogAddress" class="form-control" type="text" placeholder="博客地址"/>                    </div>                    <div class="col-md-12 myB">                        <input class="btn btn-danger form-control" type="submit" value="修改"/>                    </div>                </form>            </div>            <div class="modal-footer">            </div>        </div>    </div>
写完了就看看效果吧


上面写的页面代码没错就是你现在看到的这个弹框是不是非常的高大上呢

是不是还想添加呢

下面来看看添加的代码和实现吧

DAO层代码

//添加public  boolean addBlog(BlogInfo info) throws  Exception;

IMPL层代码

//添加public boolean add(BlogInfo blfo) throws Exception {    boolean flag=false;    String sql="INSERT INTO BlogInfo  Address,BlogAuthor VALUES (?,?)";    Object[] pa={blfo.getBlogAddress(),blfo.getBlogAuthor()};    ResultSet count = executeQuery(sql);    return flag;}

SERCLET层代码

if (action != null && action != "") {    if (action.equals("add")) {        //添加        BlogInfo blogInfo = new BlogInfo();        String blogAuthor = request.getParameter("blogAuthor");        String blogAddress = request.getParameter("blogAddress");        blogInfo.setBlogAuthor(blogAuthor);        blogInfo.setBlogAddress(blogAddress);        try {            System.out.println("===============================================");            boolean flag = d.addBlog(blogInfo);            if (flag) {                request.getRequestDispatcher("/InfoServlet?action=list").forward(request, response);            }        } catch (Exception e) {            e.printStackTrace();        }

添加也不需要添加页面和修改是一样的只需要在你的页面加和修改一样的代码就好

<!--弹出的模态框--><div id="mymodal" class="modal fade bs-examlpe-modal-sm"><!-- modal固定布局,上下左右都是0表示充满全屏,支持移动设备上使用触摸方式进行滚动。。-->    <div class="modal-dialog modal-sm"><!-- modal-dialog默认相对定位,自适应宽度,大于768px时宽度600,居中-->        <div class="modal-content"><!-- modal-content模态框的边框、边距、背景色、阴影效果。-->            <div class="modal-header">                <button class="close" data-dismiss="mymodal">&times;</button>                <h4 class="modal-title">                    添加                    <small>微冷的雨</small>                </h4>            </div>            <div class="media-body">                <form action="InfoServlet?action=add" method="post">                    <div class="col-md-10 col-md-offset-1 myMP">                        <input name="blogAuthor" class="form-control" type="text" placeholder="博客作者"/>                    </div>                    <div class="col-md-10 col-md-offset-1 myMP">                        <input name="blogAddress" class="form-control" type="text" placeholder="博客地址"/>                    </div>                    <div class="col-md-12 myB">                        <input class="btn btn-danger form-control" type="submit" value="添加"/>                    </div>                </form>            </div>            <div class="modal-footer">            </div>        </div>    </div>然后你还要设计一个标签一个点击事件来触发这个修改的页面弹出来
<a  href="#mymodal" data-toggle="modal"data-id="2">添加博客</a>
没错就是这行代码 和上方面的代码的ID是相同的
好了既然所有的东西都有了那就来看看界面效果吧
这就是效果啦