V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
bbzt
V2EX  ›  程序员

Java Web 如何入门?

  •  
  •   bbzt · 2018-04-04 09:57:35 +08:00 · 7751 次点击
    这是一个创建于 2185 天前的主题,其中的信息可能已经有所发展或是发生改变。

    你们用什么 IDE ?用什么框架? 昨天用 IDEA 跑 spring mvc 的 demo 折腾了半天 tomcat 跑不了。

    有什么简单的 github 项目提供学习?

    第 1 条附言  ·  2018-04-04 13:57:33 +08:00
    讨论变成了,spring boot 与传统的 servlet 争论

    传统的 servlet 需要配合 tomcat 这种服务来整合,IDEA 整合 tomcat 用起来碰到不少问题,汗

    spring boot 编译生成一个 jar 就直接运行,学习和部署成本是最低的。
    第 2 条附言  ·  2018-04-04 15:13:52 +08:00
    把 spring boot 的各个 demo ( https://github.com/ityouknow/spring-boot-examples ) 跑了一通,过了下 crud,感觉还行,算是入门了。

    不过,我觉得在编译型语言里 go 写 web 比 java 方便。(逃。。
    43 条回复    2018-04-05 11:02:46 +08:00
    pheyer
        1
    pheyer  
       2018-04-04 10:00:15 +08:00
    最近也在学,先在电视上看视频教程不急着跑项目
    lawler
        2
    lawler  
       2018-04-04 10:01:30 +08:00
    @pheyer exm ?在电视上看?
    octobersnow
        3
    octobersnow  
       2018-04-04 10:01:39 +08:00 via iPhone
    不应该先学 jsp 和 servlet 吗 直接上手框架?
    yidinghe
        4
    yidinghe  
       2018-04-04 10:04:08 +08:00   ❤️ 1
    外围基础知识:HTTP 协议、HTML、JavaScript、CSS
    Java Web 学习:首先学会写简单的 JSP,然后了解 Servlet 框架,然后了解基于 Servlet 的 MVC 框架。
    huiyifyj
        5
    huiyifyj  
       2018-04-04 10:06:05 +08:00 via Android
    不应该先会基础的 se 基本知识么?
    kamil
        6
    kamil  
       2018-04-04 10:10:58 +08:00 via iPhone
    请直接用 Spring Boot 开始,https://projects.spring.io/spring-boot/
    pheyer
        7
    pheyer  
       2018-04-04 10:13:55 +08:00
    @lawler 把手机视频推到电视上看啊,无论是手机还是电脑上看视频总觉得屏幕小不爽,还是电视上看得爽一些,另外少了很多干扰,因为不好做其它事啊
    bbzt
        8
    bbzt  
    OP
       2018-04-04 10:17:39 +08:00
    @octobersnow
    @yidinghe
    @huiyifyj
    @kamil

    Java 语法懂,但只会写 Java 命令行程序, 我写 PHP 的 http 相关的都懂。

    现在碰到的问题是,想学 java web 但是代码跑不起来。。( /t/443992
    jjianwen68
        9
    jjianwen68  
       2018-04-04 10:18:09 +08:00 via Android   ❤️ 1
    可以用 spring tools,使用 spring boot。see start.spring.io
    codeyung
        10
    codeyung  
       2018-04-04 10:23:41 +08:00
    学学 jsp 看看 servlet 生命周期 http 之后在上框架吧 多少看点基础
    qwertty01
        11
    qwertty01  
       2018-04-04 10:31:08 +08:00
    @bbzt 选择很多啊,你都不会用百度吗。什么《 Java Web 整合开发王者归来》《 Java Web 高级编程》《 Spring 实战》《 Spring4.x 企业应用开发实战》。
    qwertty01
        12
    qwertty01  
       2018-04-04 10:32:50 +08:00
    建议按顺序来,先学习一下 JavaEE,比如什么 Jsp、Serverlet 之类的,然后再学 Spring。

    JavaWeb 零基础,上来就学 SpringBoot 不是搞笑吗。
    starmoon1994
        13
    starmoon1994  
       2018-04-04 10:33:44 +08:00
    javaSE 和 javaEE 中间还是隔了不少东西的
    crossoverJie
        14
    crossoverJie  
       2018-04-04 10:34:25 +08:00   ❤️ 1
    1. IDEA
    2. Spring 全家桶(SpringBoot)
    3. 学习的话 这个还挺适合新手的 https://github.com/crossoverJie/SSM
    codingKingKong
        15
    codingKingKong  
       2018-04-04 10:45:24 +08:00
    idea, ssm 或者 springboot, 优先建议 springmvc + spring 起步, 再过渡到 springboot 会感觉无配置真的爽...
    codingKingKong
        16
    codingKingKong  
       2018-04-04 10:46:08 +08:00
    这里有一个 demo, 跑起来还是可以的...
    https://github.com/isCoding/springMVC_demo
    bbzt
        17
    bbzt  
    OP
       2018-04-04 10:47:41 +08:00
    @jjianwen68
    @qwertty01
    @codeyung

    我按照这个 spring boot 的项目生成 jar 包,写 demo 跑起来了,但是为什么有些又是 war 包? spring boot 不能生产 war 包?
    vjnjc
        18
    vjnjc  
       2018-04-04 11:52:31 +08:00   ❤️ 1
    spring boot 官方推荐的是微服务,就是自启动,意思就是一个 jar 包自己 run。
    war 包需要扔在 tomcat 里面
    Amayadream
        19
    Amayadream  
       2018-04-04 11:59:42 +08:00
    上来就学 Spring Boot 的麻烦不要误人子弟好吗? Java Web 先从 Servlet 入门, 然后接触 Spring MVC, 这些都掌握熟练之后才考虑学习 Spring Boot, 初学者连基础的 Servlet 都不会就去学高级框架以后就等着踩坑吧
    zjp
        20
    zjp  
       2018-04-04 12:39:36 +08:00 via Android
    同意楼上
    框架屏蔽了太多细节,直接上框架又不懂原理的话遇到点问题无从下手,能折腾上一整天。相当挫败
    OpenJerry
        21
    OpenJerry  
       2018-04-04 12:42:50 +08:00 via Android
    先学 Jsp + Servlet + JDBC
    再学框架
    night98
        22
    night98  
       2018-04-04 12:44:24 +08:00   ❤️ 4
    Java Web 入门:
    1. 学习 HTML CSS JS,知道大概原理和基础语法即可
    2.学习 Servlet,包括其中原理,以及 Servlet3 的异步操作(说要学 JSP 和模板的先停一下)
    3.学习 Spring 框架,即 spring-framework,了解基本用法即可
    4.学习 MyBatis 框架,熟悉常见开发方式即可(此处默认你已有 SQL 知识,若无请先补充 JDBC 及 SQL 知识)
    5.学习 SpringMVC 框架,了解基本用法即可
    6.学习 SpringBoot 框架,了解基本用法即可
    7.学习其他周边内容,包括但不限于分布式,缓存,队列,异步等等。
    wsb200514
        23
    wsb200514  
       2018-04-04 13:05:06 +08:00
    如果直接上手 spring boot 的话,那么就再也不想回去用 ssh/ssm 那些框架了,也就少了个学习的过程,对自己做项目没影响对就业可能有影响。有利有弊。
    bbzt
        24
    bbzt  
    OP
       2018-04-04 13:43:18 +08:00
    @vjnjc

    我现在用 IDEA 自动运行 spring mvc 的 war 包到 tomcat,运行不了,但是手动把 war 包扔到 tomcat 的 webapps 下可以正常运行。


    你们一般是怎么开发的?编译后手动再扔到 tomcat 下好麻烦,怎么才能直接快速就能看到效果?
    wizardforcel
        25
    wizardforcel  
       2018-04-04 13:47:12 +08:00
    @Amayadream Spring Boot 不依赖任何 JavaEE 技术栈。不过如果用它的公司多,直接学它也是可以的。
    nita22
        26
    nita22  
       2018-04-04 14:15:25 +08:00
    @bbzt IDEA 里面配置好 tomcat,就可以每次自动部署。运行不了可以截图上来看看
    thinkingInJava
        27
    thinkingInJava  
       2018-04-04 14:32:39 +08:00 via iPhone
    @bbzt idea 界面 server 里面双击 tomcat 打开设置 勾当中的选项 应该能解决你的问题了。注意是双击,不是右击部署启动
    bbzt
        28
    bbzt  
    OP
       2018-04-04 14:34:03 +08:00
    @thinkingInJava
    @nita22

    我昨天就是这个问题( /t/443992 ),tomcat 在 idea 里跑不了,只能手动扔 war 包运行
    thinkingInJava
        29
    thinkingInJava  
       2018-04-04 14:37:22 +08:00 via iPhone
    @bbzt 解决了么?
    murmur
        30
    murmur  
       2018-04-04 14:53:44 +08:00
    servlet 基础还是要有的 别某些 java 程序员一样 spring 写了 n 久都不知道还有 HttpServletRequest
    tinyuu
        31
    tinyuu  
       2018-04-04 14:56:03 +08:00
    IDEA 整合 tomcat 能有什么问题?
    tinyuu
        32
    tinyuu  
       2018-04-04 15:27:16 +08:00
    你这算什么入门啊
    mooczz
        33
    mooczz  
       2018-04-04 16:16:43 +08:00 via iPhone
    Java web 的最大的门槛就是环境搭建
    CoderGeek
        34
    CoderGeek  
       2018-04-04 16:19:48 +08:00
    @bbzt 想要生成 war 包修改 pom.xml 配置 如果是用 maven 的话 使用外部的 tomcat 部署
    相关的百度一下
    CoderGeek
        35
    CoderGeek  
       2018-04-04 16:22:03 +08:00
    Application 启动类 extends SpringBootServletInitializer
    CoderGeek
        36
    CoderGeek  
       2018-04-04 16:23:26 +08:00
    说错了 添加外部 tomcat 的话 添加服务器配置就好了 ...
    nita22
        37
    nita22  
       2018-04-04 17:36:20 +08:00
    @bbzt 昨天帖子 @night98 已经给出了错误原因了,“可能他是去找 hello 这个页面找不到所以就 404 了,如果你想返回 json 格式数据请用 restController 或在方法上加 @ResponseBody 注解”
    既然你能打开 tomcat 的 manager 就说明已经 tomcat 已经配置成功了呀
    bbzt
        38
    bbzt  
    OP
       2018-04-04 18:31:37 +08:00
    @nita22

    能确定不是代码问题啊,因为 war 包直接手动扔 tomcat 下是可以访问到的
    bbzt
        39
    bbzt  
    OP
       2018-04-04 18:32:01 +08:00
    @thinkingInJava

    没有解决
    yanjinbin
        40
    yanjinbin  
       2018-04-04 23:37:11 +08:00 via iPhone
    @qwertty01 我觉得你更搞笑。。。JSP ex me
    yanjinbin
        41
    yanjinbin  
       2018-04-04 23:38:18 +08:00 via iPhone
    @codingKingKong 直接 boot 就好了。XML 和注解有什么区别??? xml 才是最恶心的
    tedzhou1221
        42
    tedzhou1221  
       2018-04-05 09:20:24 +08:00 via Android
    学 Jsp server 没毛病啊。


    你是初学,不是要快速解决一个问题。欲速则不达!

    为什么 Spring MVC 获取参数这么方便,了解过吗?一旦出问题,你知道大概是哪个环节错来吗?

    所以建议一步一步来吧

    那些看源码的大佬们还没说话呢
    magicO
        43
    magicO  
       2018-04-05 11:02:46 +08:00 via Android
    大佬这么牛逼。上来就框架。我这种小菜鸡那会刚学就是一步一步走。java web 入门的书(servlet,jsp 之类的),跟着写。然后拿个简单点的项目入手,接着再找本 spring 的书跟着做,做久了,问题遇到的多了,以后就自己有经验了。没啥窍门,多写,多犯错。你就更深入了解框架之间的区别和联系,也会更加明白框架的底层的东西。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5491 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 09:02 · PVG 17:02 · LAX 02:02 · JFK 05:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.